跳转到主要内容

Pyramid的SockJS服务器实现。

项目描述

pyramid_sockjs

pyramid_sockjs 是一个基于 geventSockJS 集成,用于 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>
https://secure.travis-ci.org/fafhrd91/pyramid_sockjs.png

安装

  1. 安装 virtualenv

    $ wget https://raw.github.com/pypa/virtualenv/master/virtualenv.py
    $ python2.7 ./virtualenv.py --no-site-packages sockjs
  2. 安装 gevent 1.0rc2 (非Windows)

    $ ./sockjs/bin/pip install https://github.com/downloads/SiteSupport/gevent/gevent-1.0rc2.tar.gz
  1. 安装 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
  2. 从 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

支持传输

限制

  • 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 (63.6 kB 查看哈希值)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面