django+gevent+socketio=出色的客户机/服务器交互

django-socketio-alt的Python项目详细描述


对gevent socketio的替代django支持,基于 mrjmad example project

它对

socketio是一个抽象层,它覆盖了维护连接的多种方法 在客户端和服务器之间,否则称为长轮询,这包括 websockets

结帐what are websockets?

文档

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/窗口 开始对话。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Thumbnailator库将图像转换为cmyk   Java反射从目录中的类运行测试   JavaEclipseJDT编译器说方法未定义,但EclipseIDE没有   重构如何重构一行重复的java代码   java Eclipse:使用删除线文本呈现自定义注释   java问题与ArrayList复制数据   java如何在swagger中传递访问令牌?   使用另一个java文件运行java文件时出错   java为什么谷歌云存储生成的上传链接在成功上传后不会失效?   java将我的客户端PC重定向到默认登录页面   java hibernate c3p0配置mysql问题   java和java之间的区别。尼奥。文件文件和java。伊奥。文件   列出java循环并向映射中添加值   java为什么OJ报告这段代码的运行时错误?