我在我的应用程序中添加了一个 websocket 服务器,以便它可以与自身的基于 Web 的版本进行通信。为此,我正在使用 eventlet。
我遇到的问题是一旦我启动服务器,我就不能让它死掉。即使我关闭了我的应用程序,该进程仍会在服务器保持活动状态时在后台运行。几天来,我一直在谷歌搜索和测试随机的东西,但无法实现。我希望这里有人可以帮助我。
目前,我有一个带有启动监听功能的单例类:
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 进程的任务之前,我找不到任何东西会杀死这个服务器。