Pyramid的SockJS服务器实现。
项目描述
pyramid_sockjs
pyramid_sockjs 是一个基于 gevent 的 SockJS 集成,用于 Pyramid。SockJS接口被实现为一个 Pyramid路由。pyramid_sockjs 在 WSGI 应用程序内而不是 WSGI 服务器中运行。这意味着你之前的所有 WSGI/Pyramid 经验都将相关。可以创建任意数量的不同 sockjs 路由,例如 /__sockjs__/* 或 /mycustom-sockjs/*。可以为每个 sockjs 路由提供不同的会话实现和管理。
pyramid_sockjs 需要 Gevent 基于的服务器。例如,带有 gevent 工作器的 gunicorn。pyramid_sockjs 提供了一个简单的基于 gevent 的 paster 服务器运行器。
[server:main] use = egg:pyramid_sockjs#server host = 0.0.0.0 port = 8080
sockjs路由示例
def main(global_settings, **settings): config = Configurator(settings=settings) config.add_sockjs_route(prefix='/__sockjs__') return config.make_wsgi_app()
客户端代码
<script src="http://cdn.sockjs.org/sockjs-0.3.4.min.js"></script> <script> var sock = new SockJS('http://localhost:8080/__sockjs__'); sock.onopen = function() { console.log('open'); }; sock.onmessage = function(obj) { console.log(obj); }; sock.onclose = function() { console.log('close'); }; </script>
安装
安装 virtualenv
$ wget https://raw.github.com/pypa/virtualenv/master/virtualenv.py $ python2.7 ./virtualenv.py --no-site-packages sockjs
安装 gevent 1.0rc2 (非Windows)
$ ./sockjs/bin/pip install https://github.com/downloads/SiteSupport/gevent/gevent-1.0rc2.tar.gz
安装 gevent 1.0rc1 (Windows, 32位Python 2.7)
$ ./sockjs/Scripts/easy_install https://github.com/downloads/SiteSupport/gevent/gevent-1.0rc2.win32-py2.7.exe
从 github 克隆 pyramid_sockjs 并安装
$ git clone https://github.com/fafhrd91/pyramid_sockjs.git $ cd pyramid_sockjs $ ../sockjs/bin/python setup.py develop
要运行聊天示例,请使用以下命令
$ ./sockjs/bin/python ./pyramid_sockjs/examples/chat.py
支持传输
iframe-eventsource (EventSource 用于一个 iframe 通过 postMessage)
限制
Pyramid sockjs 不支持具有相同会话 ID 的多个 websocket 会话。
gevent 不支持 Python 3
Pyramid sockjs在Heroku上无法检测客户端断开连接。
需求
示例
您可以在github上的pyramid_sockjs存储库中找到几个示例。
https://github.com/fafhrd91/pyramid_sockjs/tree/master/examples
许可
pyramid_sockjs遵循MIT许可协议。
变更
0.3.9 (2013-01-08)
使用unquote_plus代替unquote进行jsonp传输 @DustyHarry
0.3.8 (2012-11-15)
更新sockjs-protocol-0.3.3
修复Session.__str__方法中的TypeError
修复gevent 1.0b3版本的eventsource传输
0.3.7 (2012-07-16)
在接收任何传入消息之前显式打开会话,适用于WebSocket传输。
0.3.6 (2012-06-21)
可能存在会话劫持 #7
使用Configurator操作开始会话gc。 #6
0.3.5 (2012-05-19)
修复了WebSocket传输的close/closed会话状态。
删除了gunicorn猴子补丁。需要gunicorn 0.14.3。
0.3.4 (2012-05-06)
修复了datetime序列化,假设所有datetime对象都在utc时区。
0.3.3 (2012-05-02)
将request传递给session工厂
0.3.2 (2012-04-02)
将‘cookie_needed’作为配置选项
更新sockjs-protocol 0.3
0.3.1 (2012-03-27)
修复了python2.6兼容性。见#1
0.3.0 (2012-03-26)
添加了Hixie 75/76 WebSocket协议
0.2.1 (2012-03-20)
修复了带有‘[]’的WebSocket帧
更新cors头以符合dev协议
0.2 (2012-03-16)
修复了ujson支持
0.1 (2012-02-23)
初始版本
项目详情
pyramid_sockjs-0.3.9.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f2c771e068f001fa795e042cc47f1062d02f935aa30761337a98ea172f6d1bdd |
|
MD5 | 2111517b62ffb3e38315993e9db62b95 |
|
BLAKE2b-256 | 50cac254d2120f36f253c59ef1ce160b3afa2f67806278435bb8cf1ac2a65c12 |