Source code for crossbar.webservice.websocket

#####################################################################################
#
#  Copyright (c) typedef int GmbH
#  SPDX-License-Identifier: EUPL-1.2
#
#####################################################################################

from autobahn.twisted.resource import WebSocketResource

from crossbar.router.protocol import WampWebSocketServerFactory, WebSocketReverseProxyServerFactory
from crossbar.webservice.base import RouterWebService


[docs] class RouterWebServiceWebSocket(RouterWebService): """ WAMP-WebSocket service. """ @staticmethod
[docs] def create(transport, path, config): websocket_factory = WampWebSocketServerFactory( transport._worker._router_session_factory, transport.cbdir, config, transport.templates ) # FIXME: Site.start/stopFactory should start/stop factories wrapped as Resources websocket_factory.startFactory() resource = WebSocketResource(websocket_factory) return RouterWebServiceWebSocket(transport, path, config, resource)
[docs] class RouterWebServiceWebSocketReverseProxy(RouterWebService): """ Reverse WebSocket service. """ @staticmethod
[docs] def create(transport, path, config): ws_rproxy_factory = WebSocketReverseProxyServerFactory(transport._worker._reactor, config) ws_rproxy_factory.startFactory() resource = WebSocketResource(ws_rproxy_factory) return RouterWebServiceWebSocketReverseProxy(transport, path, config, resource)