Установите одновременные соединения Websocket с сервером с помощью клиента Python Twisted Websocket - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь открыть одновременные подключения к веб-сокету со стороны клиента (который имеет ограничение в 60 тыс. Портов на машину) с помощью клиента Python Twisted Authobhan Websocket. Но я не могу открыть не более 20 КБ-подключений, используя следующий код:

from autobahn.twisted.websocket import WebSocketClientProtocol, WebSocketClientFactory

class WebSocketClient(WebSocketClientProtocol):

    def _handshake_request(self):
        pass

    def onOpen(self):
        self._handshake_request()

    def onConnect(self, response):
        pass
    def onMessage(self,data):
        pass


class WebSocketFactory(WebSocketClientFactory):

    """WebSocketClient Factory"""

    protocol = WebSocketClient

if __name__ == '__main__':

    factory = WebSocketFactory()

    ##### Note here. ######
    for _ in range(num_connections):
        reactor.connectTCP(ws_url, ws_port, factory)
    #####

    reactor.run()

В цикле я использовал «ctor.connectTCP ». Правильно ли открывать параллельные соединения через веб-сокет с помощью Twisted?

Дайте мне знать.

1 Ответ

0 голосов
/ 10 октября 2018

Вам нужно выполнить меньше одновременных попыток подключения.Вы можете поддерживать 20 или более соединений, но не сможете установить их все одновременно.

Ограничьте себя несколькими десятками или сотнями одновременно.Вы можете использовать twisted.internet.task.cooperate для этого.

...