在 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
2021-02-18 :
Odoo 字段定义详解
2020-09-10 :
Odoo14 相对 Odoo13 依赖库的变化
2020-04-20 :
OE客服系统之工单&客诉模块
2020-03-30 :
微信模块 Oejia_wx v0.6.2 发布,统一SDK,缓存对象配置模型等多项优化
2020-03-28 :
小程序商城模块 Oejia_weshop v0.2 发布,全面升级为OE商城系统
2018-05-04 :
基于 Odoo 微信模块实现的微信客服系统
2016-11-21 :
DjangoX 站点级配置介绍
2016-02-23 :
YouMd 基本使用说明
2016-01-17 :
EXTJS 中Ajax 应用示例
2014-12-23 :
MoSys详细说明文档
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架子