python - Django / python : Real time peer to peer chat messaging

标签 python django sockets real-time

<分区>

我使用 Django 和 Gunicorn 来支持我的前端 iOS 应用程序。到目前为止,我一直在使用简单的 GET、PUT、POST 请求从我的 iOS 应用程序向我的 Django 服务器发送和接收 json 数据,反之亦然。

此设置非常可靠,但我想实现实时消息传递。刚开始时,我使用 APNS(Apple 的推送通知服务)向收件人实时发送消息。这是我过去常常做的一个例子:

如果 UserA 向 UserB 发送消息,我会通过 JSON 将消息发送到 Django 服务器,在 Django View 中处理它,使用 pyAPNS - 一个用于 APNS 的 python 包装器,它将向 UserB(接收者)发送推送通知以及 256 字节的有效负载大小。这很有效,但也有一些缺点。

如果收件人选择禁用推送通知,则他们将不会收到消息。当您在 iOS 应用程序中实现核心数据时,如果您缓存对象,这可能会非常困惑。

所以这让我有了另一个选择。构建可以与 Django 一起使用的基于套接字的东西,并将有效负载作为 JSON 发送。有什么想法吗?

最佳答案

你看过这里吗:

https://pypi.python.org/pypi/django-socketio/

或在这里:

http://maxburstein.com/blog/realtime-django-using-nodejs-and-socketio/

或在这里:

https://www.djangopackages.com/grids/g/websockets/

这是可能的。

此外,我不明白为什么必须在 Django 本身中解析实时消息传递。你可以简单地实现一些 node.js 类型的服务器来为你处理这个,iOS 应用程序通过不同的 API 提取数据。这将起作用,除非您需要将消息传递数据附加到其他数据。

关于python - Django / python : Real time peer to peer chat messaging,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20874391/

相关文章:

python - 将事件的时间序列 + 持续时间重新采样为并发事件

python - 如何在 ECS 任务中将 rds.DatabaseCluster secret 作为环境变量传递

python - django.db.utils.IntegrityError : NOT NULL constraint failed: polls_article.reporter_id

python - 通过 http 连接到免费的 pythonanywhere 实例

Java:正确关闭多线程服务器的套接字

Python:更改列表列表中的元素

python - 在 kivy 中,如何控制 TextInput 使用的 VKeyboard 的高度

python - Django IntegrityError 列 "author_id"中的 null 值违反了非空约束

python - Django 模板 - 有条件地为登录用户显示一个按钮

linux - 一个打开的套接字可以长时间不读取吗?