Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F7159141
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/sylk/applications/webrtcgateway/protocol.py b/sylk/applications/webrtcgateway/protocol.py
index 32bb4f2..dd49b37 100644
--- a/sylk/applications/webrtcgateway/protocol.py
+++ b/sylk/applications/webrtcgateway/protocol.py
@@ -1,63 +1,64 @@
import json
from application.notification import NotificationCenter, NotificationData
from autobahn.twisted.websocket import WebSocketServerProtocol
from autobahn.websocket import ConnectionDeny
from .handler import ConnectionHandler
from .janus import JanusBackend
from .logger import log
SYLK_WS_PROTOCOL = 'sylkRTC-2'
class SylkWebSocketServerProtocol(WebSocketServerProtocol):
janus_backend = JanusBackend()
connection_handler = None
notification_center = NotificationCenter()
def onConnect(self, request):
if SYLK_WS_PROTOCOL not in request.protocols:
- log.info('Rejecting connection from %s, remote does not support our sub-protocol' % self.peer)
+ log.debug('Connection from {} request: {}'.format(self.peer, request))
+ log.info('Rejecting connection from {}, client uses unsupported protocol: {}'.format(self.peer, ','.join(request.protocols)))
raise ConnectionDeny(406, u'No compatible protocol specified')
if not self.janus_backend.ready:
- log.info('Rejecting connection from %s, Janus backend is not connected' % self.peer)
+ log.warning('Rejecting connection from {}, Janus backend is not connected'.format(self.peer))
raise ConnectionDeny(503, u'Backend is not connected')
return SYLK_WS_PROTOCOL
def onOpen(self):
self.factory.connections.add(self)
self.connection_handler = ConnectionHandler(self)
self.connection_handler.start()
self.connection_handler.log.info('connected from {address}'.format(address=self.peer))
def onMessage(self, payload, is_binary):
if is_binary:
self.connection_handler.log.error('received invalid binary message')
return
self.notification_center.post_notification('WebRTCClientTrace', sender=self, data=NotificationData(direction='INCOMING', message=payload, peer=self.peer))
try:
data = json.loads(payload)
except Exception as e:
self.connection_handler.log.error('could not parse WebSocket payload: {exception!s}'.format(exception=e))
else:
self.connection_handler.handle_message(data)
def onClose(self, clean, code, reason):
if self.connection_handler is None: # Connection was closed very early before onOpen was even called
return
self.connection_handler.log.info('disconnected')
self.factory.connections.discard(self)
self.connection_handler.stop()
self.connection_handler = None
def sendMessage(self, payload, *args, **kw):
self.notification_center.post_notification('WebRTCClientTrace', sender=self, data=NotificationData(direction='OUTGOING', message=payload, peer=self.peer))
super(SylkWebSocketServerProtocol, self).sendMessage(payload, *args, **kw)
def disconnect(self, code=1000, reason=u''):
self.sendClose(code, reason)
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sat, Nov 23, 3:13 AM (13 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3408628
Default Alt Text
(3 KB)
Attached To
Mode
rSYLK SylkServer
Attached
Detach File
Event Timeline
Log In to Comment