Уведомления

Группа в Telegram: @pythonsu

#1 Май 20, 2015 23:27:38

Ivan777
Зарегистрирован: 2015-05-20
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

идентификация клиента в twisted

Всем привет! Я пишу сервер с использованием twisted. К серверу могут подключаться несколько клиентов, сервер может принимать от них сообщения и обрабатывать их. Результат должен отправлять только одному клиенту. Сразу после установления соединения клиент присылает на сервер строку вида “ima:name”, где в качестве name используется UserID. Нужно как-то идентифицировать клиент-ресивер по UserID, чтобы сервер мог знать, кому отправлять сообщения. Первое, что пришло в голову - запомнить номер клиента при подключении:

num = len(self.factory.clients)-1
 print "this client is", num
Но клиенты могут подключаться и отключаться, номер клиента в self.factory.clients может меняться. Как решить проблему идентификации клиента-ресивера?
Далее привожу участок кода, отвечающий за подключение клиентов к серверу и обработку соообщения с UserID.
class IphoneChat(Protocol):
    def connectionMade(self):
        self.factory.clients.append(self)
        print "clients are ", self.factory.clients
    def dataReceived(self, data):
        a = data.split(':')
        command = a[0]
        content = a[1]
        if command == "iam":
		    self.name = content
		    msg = self.name + " has joined"
		    print msg
       

Отредактировано Ivan777 (Май 20, 2015 23:28:53)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version