特定のサイトのホストを返す関数があります。これら2つの関数を使用して
def connect(self, rooms):
print('')
i = [x for x in rooms]
for x in i:
self.room_connect(x)
running = True
while running:
self.event_data()`
def room_connect(self, rooms):
host = getServer(rooms)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((host, 443))
sock.send(self.room_auth(rooms).encode())
self.sockets = sock
print(self.sockets)
print('connected to '+ rooms)
self.postbyte = True
ホストごとに異なるソケットに接続できます。問題は、接続先の各ソケットとの接続を維持する必要があることです。最終的に、for ループで作成された最後のソケットのみが保持されます。そのソケットからのソケット recv データがハンドラーに渡され、情報が解析されます。基本的に私が求めているのは、for ループで作成された各ソケットからの接続を維持し、recv 情報をハンドラーに渡す方法です。ハンドラーは event_data() であり、event_data 関数では、解析するデータは data = self.sockets.recv(1024) によって定義されます。問題は、for ループからの最後のソケットのみが処理されるために残っていることです。