MCPcopy Index your code
hub / github.com/rawpython/remi / handshake

Method handshake

remi/server.py:239–267  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

237 return True
238
239 def handshake(self):
240 self._log.debug('handshake')
241 key = self.headers['Sec-WebSocket-Key']
242 self.session = None
243 if 'cookie' in self.headers:
244 if self.headers['cookie']!=None:
245 self.session = parse_session_cookie(self.headers['cookie'])
246 if self.session == None:
247 return False
248 if not self.session in clients.keys():
249 return False
250
251 digest = hashlib.sha1((key.encode("utf-8")+self.magic))
252 digest = digest.digest()
253 digest = base64.b64encode(digest)
254 response = 'HTTP/1.1 101 Switching Protocols\r\n'
255 response += 'Upgrade: websocket\r\n'
256 response += 'Connection: Upgrade\r\n'
257 response += 'Sec-WebSocket-Accept: %s\r\n\r\n' % digest.decode("utf-8")
258 self._log.info('handshake complete')
259 self.request.sendall(response.encode("utf-8"))
260 self.handshake_done = True
261
262 #if an update happens since the websocket connection to its handshake,
263 # it gets not displayed. it is required to inform App about handshake done,
264 # to get a full refresh
265 clients[self.session].websocket_handshake_done(self)
266
267 return True
268
269 def on_message(self, message):
270 global runtimeInstances

Callers 1

handleMethod · 0.95

Calls 3

parse_session_cookieFunction · 0.85
sendallMethod · 0.80

Tested by

no test coverage detected