def sendToAllClients(messageSender, message):
# Formatting the message
messageHeader = f"{len(message) :< {HEADER_LENGTH}}".encode('utf-8')
messageList = {'header': messageHeader, 'data': message.encode('utf-8')}
# Send the message to all clients
for client in clients:
client.send(messageSender['header'] + messageSender['data'] + messageList['header'] + messageList['data'])
def sendMessageTo(messageSender, message, messageTargetUsername):
# Formatting the message
messageHeader = f"{len(message) :< {HEADER_LENGTH}}".encode('utf-8')
messageList = {'header': messageHeader, 'data': message.encode('utf-8')}
# Go through all clients
for client in clients:
# If the client has the same username as the target, send the message only to them
if clients[client].get('data').decode('utf-8') == messageTargetUsername:
client.send(messageSender['header'] + messageSender['data'] + messageList['header'] + messageList['data'])
Я получаю сообщение об ошибке «TypeError: объект 'socket' не подлежит подписке» всякий раз, когда я пытаюсь использовать метод sendMessageTo, но не когда я использую метод SendToAllClients, есть идеи, почему это происходит?
Строка, которая, кажется, выдает ошибку:
client.send(messageSender['header'] + messageSender['data'] + messageList['header'] + messageList['data'])
Но почти такая же строка в sendToAllClients работает ??