【发布时间】:2018-07-27 06:40:01
【问题描述】:
我有以下类来打开我的 websocket:
import os
import asyncio
import websockets
import threading
class Server:
def get_port(self):
return os.getenv('WS_PORT', '9002')
def get_host(self):
return os.getenv('WS_HOST', 'localhost')
def shutdown(self):
self.loop.call_soon_threadsafe(self.loop.stop)
def start(self):
return websockets.serve(self.handler, self.get_host(), self.get_port())
随后是一些传入消息的异步处理方法。用于获取消息的循环函数在其自己的线程中运行,仅供参考。
我可以终止程序,但是我无法正确关闭套接字,导致脚本重新启动时出现以下错误
OSError: [Errno 10048] error while attempting to bind on address ('127.0.0.1', 9002):
由于端口已在使用中。通常我会使用一些.close()函数,但是websocket包不提供这样的功能,所以我想知道我是否可以用os包或websocket包来完成这个?
【问题讨论】:
标签: python python-3.x sockets websocket python-asyncio