正确关闭python上的websocket

时间:2018-04-09 15:55:34

标签: python websocket python-asyncio

我在python上使用websockets lib在自定义线程中创建一个websockets服务器:

def stop(self):
    self._server.ws_server.close()
    self._server.ws_server.wait_closed();

现在我想干净地停止这台服务器,但似乎我错过了一些东西。从文档中,他们声明关闭服务器我唯一需要做的就是使用这样的东西(这是从主线程调用的自定义线程类中的函数):

int result = 0;
int.TryParse(cmd.ExecuteScalar(), out result);

但是"完成......"永远不会打印文字。

我是否误解了文档或什么?

干杯。

1 个答案:

答案 0 :(得分:3)

好吧,在玩了一下后,我用这个完成了一个干净的安装:

async def _internalStop(self):
    self._server.ws_server.close()
    await self._server.ws_server.wait_closed()
    self._eventLoop.stop();
    while(self._eventLoop.is_running()):
        time.sleep(0.5)
    self._eventLoop.close();
    self._eventLoop=None;