django+gevent+socketio=出色的客户机/服务器交互
django-socketio-alt的Python项目详细描述
对gevent socketio的替代django支持,基于 mrjmad example project。
文档
将djsocketio添加到settings.py中的INSTALLED_APPS中
在项目的应用程序中创建live.py。Django Socketio Alt公司 将发现安装在 Django,对你在生产中安装的东西要小心。live.py罐 这样开始:
from socketio.namespace import BaseNamespace from socketio.mixins import RoomsMixin, BroadcastMixin class Namespace(BaseNamespace, RoomsMixin, BroadcastMixin): def emit_to_me(self, event, *args): pkt = dict( type="event", name=event, args=args, endpoint=self.ns_name) self.socket.send_packet(pkt)
您可以使用name属性指定命名空间名称,如下所示:
class Namespace(BaseNamespace, RoomsMixin, BroadcastMixin): name = 'chat'
如果没有,则默认使用应用程序的名称,例如 应用程序注册为spam.egg.chat,命名空间的名称将为chat。 在客户端中连接到此命名空间将使用以下命令完成 代码:
var socket = io.connect('http://localhost:8000/chat');
现在你需要知道的一切都在 Gevent SocketIO documentation 对于一些复制粘贴的好处,您可以查看示例应用程序 在example directory中。
快乐生活!
如何运行示例应用程序
要运行示例应用程序,您需要安装gevent-socketio, 如果您没有pip install django-socketio-alt已经:
$> pip install gevent-socketio
因为执行websocket的默认端口是8000,下面的示例 应用程序使用此默认值您需要在另一个端口上运行django项目:
$> ./manage.py 0.0.0.0:8001
然后使用以下命令运行socketio线程:
$> ./manage.py runserver_socketio
打开两个http://0.0.0.0:8001/窗口 开始对话。