def listen(self, ws, environ):
self._add(ws)
while not ws.closed:
try:
message = ws.receive()
except WebSocketError:
break
if message is not None:
try:
message = json.loads(message)
except json.JSONDecodeError:
break
# Odoo heavily relies on httprequests, for each message
# a new httprequest will be created. This request will be
# based on the original environ from the socket initialization
# request.
httprequest = werkzeug.wrappers.Request(environ.copy())
odoo.http.root.setup_session(httprequest)
odoo.http.root.setup_db(httprequest)
odoo.http.root.setup_lang(httprequest)
gevent.spawn(self.respond, ws, httprequest, message)
self._remove(ws)
评论列表
文章目录