在 Odoo 中使用 WebSocket 并兼容Odoo的Session会话识别 - Oejia 技术栈,企业方案分享、Odoo顾问
Oejia 技术栈
主页
分享
微信模块
索引
关于
订阅
编辑器
登录
在 Odoo 中使用 WebSocket 并兼容Odoo的Session会话识别
admin
on 2022-12-29 11:38:38
``` from geventwebsocket import WebSocketApplication from ..http import OpenERPSession import odoo from odoo.tools.func import lazy_property class WsApplication(WebSocketApplication): def get_cookie(self, key): raw = self.ws.environ['HTTP_COOKIE'] if raw: _dict = dict([ e.strip().split('=',1) for e in raw.split(';')]) return _dict.get(key,None) else: return None @lazy_property def session_store(self): # Setup http sessions path = odoo.tools.config.session_dir _logger.debug('HTTP sessions stored in: %s', path) return werkzeug.contrib.sessions.FilesystemSessionStore(path, session_class=OpenERPSession) def setup_session(self): sid =self.get_cookie('session_id') if sid is None: session = None else: session = self.session_store.get(sid) self.session = session return session def get_current_user(self): pass def on_open(self): session = self.setup_session() def on_message(self, message): pass def on_close(self, reason): pass class WsServer(WebSocketServer): debug_log_format = ( '%(levelname)s in %(module)s: ' + '%(message)s' ) def run(): WsServer( (config.main_server_conf['host'], config.main_server_conf['port']), Resource([ #('/', application), # UI app ('/ws', WsApplication)# WebSocket app ]), debug=True ).serve_forever() ``` 融合odoo的服务运行 ``` #!/usr/bin/env python __import__('pkg_resources').declare_namespace('odoo.addons') import odoo from odoo.service import server class WebSocketServer(object): pass # WebSocketServer(odoo.service.wsgi_server.application) service.GeventServer = WebSocketServer if __name__ == "__main__": odoo.cli.main() ```
Information
在 Odoo 中使用 WebSocket 并兼容Odoo的Session会话识别
http://www.oejia.net/blog/2022/12/29/odoo_websocket.html
http://www.oejia.net/raw/2022/12/29/odoo_websocket.md
admin
on 2022-12-29 11:38:38
Category
Odoo
Tag
Related
2022-12-30 :
企业微信错误码:60020 的处理
2022-05-24 :
Odoo 销售订单关于内部执行与协作的扩展功能介绍
2022-05-15 :
fatal: Out of memory, malloc failed (tried to allocate bytes)
2021-08-31 :
微信模块 Oejia_wx v0.6.5 发布,更灵活强大的自定义回复功能实现各类自助交互查询业务
2020-03-31 :
Odoo 企业微信的OA审批及移动化办公
2018-10-18 :
微信小程序商城模块 Oejia_weshop v0.1.2 发布,支持 Odoo12
2018-09-26 :
Odoo 微信小程序商城模块 Oejia_weshop v0.1.1 发布
2017-11-16 :
DjangoX 扩展的命令(commands)使用指南
2017-11-02 :
Odoo 常用的一些内置对象
2016-01-17 :
EXTJS 中Ajax 应用示例
January 2023
Sun
Mon
Tue
Wed
Thu
Fri
Sat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
分类
Odoo (121)
DjangoX (13)
后端HTTP (7)
YouMd (4)
移动开发 (4)
Django (3)
前端 (2)
JS (2)
公告说明 (2)
Python (1)
Nginx (1)
桌面UI (1)
异常处理 (1)
官方公众号
关注公众号实时咨询我们
About This Entry
Odoo 让 server action 显示到指定的视图上
企业微信错误码:60020 的处理
About This Blog
main index
to find recently
archives
to find all
标签
微信模块发布记录
微信模块
小程序商城
Python
Web
Http
客服系统
OE商城
Cordova
审批OA
HTML5
Markdown
解析
DjangoX
ExtJS
示例
Excel
JS
新年
PyQT
扩展开发
YouPBX
服系统
最近发布
SyntaxError: Failed to execute 'querySelectorAll' on 'Element': 'footer:not(field footer)' is not a valid selector
企业微信错误码:60020 的处理
在 Odoo 中使用 WebSocket 并兼容Odoo的Session会话识别
Odoo 让 server action 显示到指定的视图上
Odoo 增加树形列表视图的支持
Odoo 16 正式发布时间
Odoo 企业微信之日历、日程的同步
钉钉消息通知及审批功能的使用说明
Odoo 客户管理之微信定位模块
AccessError: (u'Database fetch misses ids ((1,))) and has extra ids (1), may be caused by a type incoherence in a previous request'
Friend Links
Oejia技术梦博客分享
YouMd,爱上MarkDown
Mole轻量级wsgi架子