Oejia 技术栈
首页
应用市场
方案
OE学院
分享
关于
编辑器
登录
在 Odoo 中使用 WebSocket 并兼容Odoo的Session会话识别
admin
on 2022-12-29
``` 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/article/d3c297cb4ed115f0275b06df470a0c3a
http://www.oejia.net/raw/d3c297cb4ed115f0275b06df470a0c3a
admin
on 2022-12-29
Category
Odoo
Related
2018-02-04 :
金融
2020-09-10 :
Odoo14 相对 Odoo13 依赖库的变化
2017-08-10 :
DjangoX 列表页自定义计算列的使用
2018-02-26 :
DjangoX 中如何定制用户、权限和组相关的管理页面
2022-12-29 :
Odoo 增加树形列表视图的支持
2019-03-08 :
Odoo 菜单美化模块 oejia_menu 常见问题处理
2023-04-29 :
微信模块 Oejia_wx v0.6.7 发布,支持 Odoo16 及新的Websocket消息模式
2021-09-25 :
使用微信模块推送公众号模板消息
2022-02-24 :
错误The "--no-js" argument is deprecated, as inline JavaScript is disabled 的处理
2016-03-12 :
Odoo 的微信模块 Oejia_wx v0.2 发布!兼容 Odoo 9.0
官方订阅号
关注订阅实时了解我们更多分享
分类
(20)
Django (3)
DjangoX (13)
JS (2)
Nginx (1)
Odoo (135)
Python (1)
YouMd (3)
公告说明 (2)
前端 (2)
后端HTTP (7)
异常处理 (1)
桌面UI (1)
移动开发 (4)
About This Entry
Odoo 增加树形列表视图的支持
Odoo 16 正式发布时间
About This Blog
main index
to find recently
archives
to find all
标签
微信模块发布记录
微信模块
小程序商城
Web
Http
客服系统
OE商城
审批OA
HTML5
DjangoX
Markdown
oeshop
PyQT
YouPBX
示例
md
解析
Python
markdown
Excel
服系统
最近发布
Odoo商城模块 Oejia_weshop v1.4 发布,增加内部采购商城场景的支持!
Odoo商城模块 Oejia_weshop v1.3 发布,增加中英多语言支持及客户子账号模式!
OSError [Errno 5] Input/output error 异常处理
Odoo context 的常见使用示例
Odoo 符合国人菜单导航习惯的后台主题,支持最新的Odoo17、16等版本,支持企业版!
Odoo 官方应用市场开启 Odoo17 应用的发布!增加了行业应用专栏
Odoo商城模块 Oejia_weshop v1.2 发布,多商户、分销增强,增加商家端!
处理 Error Failed to download metadata for repo ‘appstream‘ Cannot prepare internal mirrorlist
Odoo 16 关键变化 change the term "acquirer" to "provider"
Friend Links
Oejia技术梦博客分享
YouMd,爱上MarkDown
Mole轻量级wsgi架子