本文整理汇总了Python中autobahn.twisted.websocket.WebSocketServerProtocol方法的典型用法代码示例。如果您正苦于以下问题:Python websocket.WebSocketServerProtocol方法的具体用法?Python websocket.WebSocketServerProtocol怎么用?Python websocket.WebSocketServerProtocol使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类autobahn.twisted.websocket
的用法示例。
在下文中一共展示了websocket.WebSocketServerProtocol方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: from autobahn.twisted import websocket [as 别名]
# 或者: from autobahn.twisted.websocket import WebSocketServerProtocol [as 别名]
def __init__(self):
websocket.WebSocketServerProtocol.__init__(self)
self._app = None
self._side = None
self._did_allocate = False # only one allocate() per websocket
self._listening = False
self._did_claim = False
self._nameplate_id = None
self._did_release = False
self._did_open = False
self._mailbox = None
self._mailbox_id = None
self._did_close = False
示例2: __init__
# 需要导入模块: from autobahn.twisted import websocket [as 别名]
# 或者: from autobahn.twisted.websocket import WebSocketServerProtocol [as 别名]
def __init__(self, manager, port, secure=False, key_path=None, crt_path=None, unix_socket_path=None):
self.manager = manager
from twisted.internet import reactor, ssl
from autobahn.twisted.websocket import WebSocketServerFactory, WebSocketServerProtocol
class MyServerProtocol(WebSocketServerProtocol):
def onConnect(self, request):
# log.info(self.factory)
# log.info('Client connecting: {0}'.format(request.peer))
pass
def onOpen(self):
log.info("WebSocket connection open")
WebSocketServer.clients.append(self)
def onMessage(self, payload, isBinary):
if isBinary:
log.info(f"Binary message received: {len(payload)} bytes")
else:
log.info(f"Text message received: {payload.decode('utf8')}")
def onClose(self, wasClean, code, reason):
log.info(f"WebSocket connection closed: {reason}")
try:
WebSocketServer.clients.remove(self)
except:
pass
factory = WebSocketServerFactory()
factory.setProtocolOptions(autoPingInterval=15, autoPingTimeout=5)
factory.protocol = MyServerProtocol
def reactor_run(reactor, factory, port, context_factory=None, unix_socket_path=None):
if unix_socket_path:
sock_file = Path(unix_socket_path)
if sock_file.exists():
sock_file.unlink()
reactor.listenUNIX(unix_socket_path, factory)
else:
if context_factory:
log.info("wss secure")
reactor.listenSSL(port, factory, context_factory)
else:
log.info("ws unsecure")
reactor.listenTCP(port, factory)
reactor.run(installSignalHandlers=0)
if secure:
context_factory = ssl.DefaultOpenSSLContextFactory(key_path, crt_path)
else:
context_factory = None
reactor_thread = threading.Thread(
target=reactor_run, args=(reactor, factory, port, context_factory, unix_socket_path), name="WebSocketThread"
)
reactor_thread.daemon = True
reactor_thread.start()