Установите одновременные соединения Websocket с сервером с помощью клиента Python Twisted Websocket
Я пытаюсь открыть одновременные подключения к веб-сокету со стороны клиента (который имеет ограничение в 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 ответ
Вам нужно выполнять меньше одновременных попыток подключения. Возможно, вам удастся выдержать 20 тыс. Или более соединений, но вы не сможете установить их все одновременно.
Ограничьте себя несколькими десятками или сотнями одновременно. Вы можете использовать twisted.internet.task.cooperate
за это.