我正在尝试设置两个在不同端口上同时侦听的事件服务器。
下面的代码中的第一个服务器用于SocketIO实现,第二个服务器用于外部连接。两者分别起作用,但不能同时起作用。
if __name__ == '__main__':
eventlet.wsgi.server(eventlet.listen(('0.0.0.0', 4000)), app)
s = eventlet.listen(('0.0.0.0', 6000))
pool = eventlet.GreenPool(5)
while True:
c, address = s.accept()
pool.spawn_n(function, c)
答案 0 :(得分:1)
问题在于Bit pattern Unsigned Signed
----------- -------- ------
000 0 0
001 1 1
010 2 2
011 3 3
100 4 -4
101 5 -3
110 6 -2
111 7 -1
函数不会返回,它会运行循环来侦听并处理Flask-SocketIO服务器的HTTP请求。
您需要做的是将两个服务器之一移至后台线程。例如,您可以将Flask-SocketIO服务器移至后台线程,如下所示:
eventlet.wsgi.server()
如果您希望移动其他服务器,则可以执行以下操作:
if __name__ == '__main__':
eventlet.spawn(eventlet.wsgi.server, eventlet.listen(('0.0.0.0', 4000)), app)
s = eventlet.listen(('0.0.0.0', 6000))
pool = eventlet.GreenPool(5)
while True:
c, address = s.accept()
pool.spawn_n(function, c)