使用socketio和eventlet的Python WebSocket-无法杀死eventlet服务器
我在我的应用程序中添加了一个websocket服务器,这样它就可以与自己的基于web的版本进行通信。 为此,我使用eventlet 我遇到的问题是,一旦启动服务器,我就无法让它死掉。即使关闭应用程序,进程仍在后台运行,而服务器保持活动状态。我已经在谷歌上搜索和测试随机的东西好几天了,只是不能让它发生。我希望这里有人能帮助我 目前,我有一个singleton类,该类具有启动侦听的函数:使用socketio和eventlet的Python WebSocket-无法杀死eventlet服务器,python,websocket,socket.io,eventlet,python-socketio,Python,Websocket,Socket.io,Eventlet,Python Socketio,我在我的应用程序中添加了一个websocket服务器,这样它就可以与自己的基于web的版本进行通信。 为此,我使用eventlet 我遇到的问题是,一旦启动服务器,我就无法让它死掉。即使关闭应用程序,进程仍在后台运行,而服务器保持活动状态。我已经在谷歌上搜索和测试随机的东西好几天了,只是不能让它发生。我希望这里有人能帮助我 目前,我有一个singleton类,该类具有启动侦听的函数: def run_server(self, addr, port): eventlet.w
def run_server(self, addr, port):
eventlet.wsgi.server(eventlet.listen((addr, port)), self.APP)
有关信息,该应用程序为:
socketio.WSGIApp(SIO, static_files={'/': {'content_type': 'text/html',
'filename': 'index.html'}})
然后我在应用程序中的线程上启动此服务器:
def run_on_thread(addr, port):
obj = WebSocket()
t = threading.Thread(target=obj.run_server, args=(addr, port))
t.setDaemon(True)
return obj, t
线程在我的应用程序中启动,如前所述,一切正常。我所有的信息都被发送和接收
但在我结束python进程上的任务之前,我找不到任何东西会杀死此服务器。当使用WebSocket时,eventlet web服务器当前没有良好的停止机制。以下警告出现在中: 警告:目前,server()将始终等待活动连接完成后再退出,即使其中引发了异常(所有异常都以相同的方式处理,包括greenlet.GreenletExit和从BaseException继承的异常) 虽然这在正常情况下可能不是问题,但当涉及到长时间运行的HTTP连接(如eventlet.websocket)时,就会出现问题,并且在运行服务器的线程上调用wait()可能会挂起,即使在使用kill()之后,只要存在活动连接
0_0. 哇!可以谢谢你,我想哈哈。我切换到烧瓶,强制断开所有SID,然后我可以杀死烧瓶。所以我会坚持下去