Как подключить несколько аутентифицированных клиентов к каналам Django? Websocket и клиенты должны быть подключены передPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как подключить несколько аутентифицированных клиентов к каналам Django? Websocket и клиенты должны быть подключены перед

Сообщение Anonymous »

Итак, я работаю над настольным приложением, которому требуется сокет для обработки нескольких аутентифицированных клиентов с каналом Django, и клиенты должны пройти аутентификацию на сервере перед открытием каналов. Сервер работает в одной другой системе, а клиенты подключаются к нескольким системам. Я с большим трудом пытался подключить сокет к другой платформе, но мне это не удалось. Можно ли подключить к серверу клиентов на разных платформах? Если да, помогите мне решить эту проблему, поскольку я новичок в этой технологии.
Мой вопрос: используя приведенный ниже код, как я смогу подключить несколько клиентов? Я пробовал списки, но я просто не могу понять их формат. Как я могу это сделать, если к Websocket подключено несколько клиентов, и я могу отправлять данные определенному или нескольким клиентам? Скажите, как мне добавить каналы в приведенном ниже коде?

Код: Выделить всё

server.py

import socket

serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

serversocket.bind(('localhost', 8080))

serversocket.listen(10)  # become a server socket connections

while True:
connection, address = serversocket.accept()
buf = connection.recv(64)
if len(buf) > 0:
print(buf)
break

Here is the client script, I don't want to send data using an API any other way to get data from the server side:

client.py
def register_user():
username = reg_username_entry.get()
password = reg_password_entry.get()
if not username or not password:
messagebox.showerror("Input Error", "Please enter a username and password.")
return

data = {
'username': username,
'password': password
}

try:
response = requests.post("http://127.0.0.1:8000/api/register/", json=data)
if response.status_code == 200:
messagebox.showinfo("Success", response.json()['success'])
else:
try:
error_message = response.json().get('error', 'Registration failed')
except ValueError:
error_message = response.text
messagebox.showerror("Error", error_message)
except requests.exceptions.RequestException as e:
messagebox.showerror("Request failed", str(e))

def login_user():
hostname = socket.gethostname()
ip_address = socket.gethostbyname(hostname)

username = login_username_entry.get()
password = login_password_entry.get()
if not username or not password:
messagebox.showerror("Input Error", "Please enter a username and password.")
return

data = {
'username': username,
'password': password
}

try:
response = requests.post("http://127.0.0.1:8000/api/login/", json=data)
if response.status_code == 200:
messagebox.showinfo("Success", response.json()['success'])
# messagebox.showinfo("Message", "Hey There! I hope you are doing well.")
clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket.connect(('localhost', 8080))
clientsocket.send(bytes('Socket Connected!', 'utf-8'))
print(f"Hostname: {hostname}")
print(f"IP Address: {ip_address}")

else:
try:
error_message = response.json().get('error', 'Login failed')
except ValueError:
error_message = response.text
messagebox.showerror("Error", error_message)
except requests.exceptions.RequestException as e:
messagebox.showerror("Request failed", str(e))
Мне нужны ваши ценные предложения или отзывы, буду очень признателен.

Подробнее здесь: https://stackoverflow.com/questions/786 ... -websocket
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»