Gevent-Socketio Module-Socketio
2014-01-02 16:06
369 查看
原文:https://gevent-socketio.readthedocs.org/en/latest/main.html#module-socketio
socketio
这个模块将主函数挂钩到你的框架上
从视图中调用socketio_manage函数,将启用一个Socket.IO进程。
SocketIO主函数,从你框架的视图中调用它。
environ是WSGI的environ,它用来从底层服务(作为”socketio“键)中提取Socket对象,并附加到Socket和Namespace对象中。
namespace参数是一个以命名空间字符串为键、以BaseNamespace派生类为值的字典。空字符串是全局命名空间,你可以用Socket.GLOBAL_NS来明确的标志。所以,它使用起来是这样的:
request 参数不是必须的,但它对于把框架中特别的东西引入到你的命名空间非常有用,它被简单的附加到Socket和命名空间对象,并且,在任何情况下它都不能被gevent-socketio库访问。
error_handler参数用来覆盖默认的错误处理(默认是socketio.virtsocket.default_error_handler)
json_loads和json_dumps用来覆盖默认的json_loads和默认的json_dumps
这个方法会阻塞框架中当前的视图和控制器来进行socket的收发,直到一个请求被分发过来。
这是一个简单的Pyramid例子:
【注意!】你必须明白,每次socket打开,这个方法只调用一次,即使你使用的是长轮询机制。之后的调用,将直接被hook到服务层与活动的socket实例交互。这意味着,你将不能访问未来的request和environ对象。就sessions而言,这是特别重要的。在开启的socket中,session会被打开,知道socket关闭,session才会被关闭。如果你想保持session数据与其他的GET/POST请求同步,你需要自己处理session的打开与关闭。
socketio
这个模块将主函数挂钩到你的框架上
从视图中调用socketio_manage函数,将启用一个Socket.IO进程。
socketio.socketio_manage(environ, namespaces, request=None, error_handler=None, json_loads=None, json_dumps=None)[source]
SocketIO主函数,从你框架的视图中调用它。
environ是WSGI的environ,它用来从底层服务(作为”socketio“键)中提取Socket对象,并附加到Socket和Namespace对象中。
namespace参数是一个以命名空间字符串为键、以BaseNamespace派生类为值的字典。空字符串是全局命名空间,你可以用Socket.GLOBAL_NS来明确的标志。所以,它使用起来是这样的:
namespaces={'': GlobalNamespace, '/chat': ChatNamespace}
request 参数不是必须的,但它对于把框架中特别的东西引入到你的命名空间非常有用,它被简单的附加到Socket和命名空间对象,并且,在任何情况下它都不能被gevent-socketio库访问。
error_handler参数用来覆盖默认的错误处理(默认是socketio.virtsocket.default_error_handler)
json_loads和json_dumps用来覆盖默认的json_loads和默认的json_dumps
这个方法会阻塞框架中当前的视图和控制器来进行socket的收发,直到一个请求被分发过来。
这是一个简单的Pyramid例子:
def my_view(request): socketio_manage(request.environ, {'': GlobalNamespace}, request)
【注意!】你必须明白,每次socket打开,这个方法只调用一次,即使你使用的是长轮询机制。之后的调用,将直接被hook到服务层与活动的socket实例交互。这意味着,你将不能访问未来的request和environ对象。就sessions而言,这是特别重要的。在开启的socket中,session会被打开,知道socket关闭,session才会被关闭。如果你想保持session数据与其他的GET/POST请求同步,你需要自己处理session的打开与关闭。
相关文章推荐
- Cannot find module 'socket.io'
- Gevent-socketio documentation — gevent-socketio 0.3.1 documentation
- gevent-socketio
- Gevent-socketio文档-Socket.IO的一个python实现
- NodeJS:cannot find module 'socket.io' | nmp全局安装 modules 后在应用中 require 不到的解决方案
- Android使用socket.io实现即时通讯
- nodejs socket.io初探
- 使用Node.js+Socket.IO搭建WebSocket实时应用
- socketio server推送
- socket.io简略中文文档(转)
- angular中使用Socket.io
- 利用socket.io构建一个聊天室
- WebRTC实时通信系列教程7 使用Socket.IO搭建信令服务器交换信息
- 基于socket.io的实时消息推送
- 第七篇:Java NIO Socket VS 标准IO Socket
- node.js 之 socket.io
- socket.io的使用之简单聊天室案例
- Nodejs socket.io 实现私聊:如何给指定客户端发送消息,不是群广播
- Socket.IO 入门
- Android端与Java服务端交互——SocketIO