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-11-28 :
Unihertz
2019-09-30 :
小程序商城模块 Oejia_weshop v0.1.5 发布,新版的UI及系列后端优化
2020-09-10 :
Odoo14 相对 Odoo13 依赖库的变化
2019-12-12 :
微信模块 Oejia_wx v0.6 发布,全面支持多worker运行模式及异步系统消息通知
2025-08-14 :
Odoo商城模块 Oejia_weshop v1.3 发布,增加中英多语言支持及客户子账号模式!
2019-02-26 :
Odoo 微信客服扩展模块使用说明
2018-06-13 :
微信模块 Oejia_wx v0.5.2 发布,优化配置且增加直发微信消息UI功能
2016-12-04 :
代码集锦
2020-09-18 :
OE商城积分模块
2019-03-25 :
Odoo 基于企业微信实现的自建应用审批流功能的配置及使用说明
官方订阅号
关注订阅实时了解我们更多分享
分类
(20)
Django (3)
DjangoX (13)
JS (2)
Nginx (1)
Odoo (136)
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商城
HTML5
审批OA
Markdown
DjangoX
示例
Python
PyQT
Excel
md
markdown
YouPBX
oeshop
服系统
解析
最近发布
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架子