【发布时间】:2014-03-30 04:15:56
【问题描述】:
作为一名网络开发人员,我在 Redis 或 Pusher 等第三方服务的帮助下开发了聊天服务和其他一些实时协作服务。它们提供了简单的 API,我可以使用发布/订阅模型在网络服务器上实现双向通信。我现在想在不使用任何第三方服务的情况下实现一个简单的推送通知,但我不太确定如何实现这一点。情况如下:
- 后端使用 Python (Django)
- 用户收到来自另一个用户的私人消息。
- 无需刷新网络浏览器即可通知收件人。
我的问题:
- 从post 看来,Django 似乎是实现此类功能的一个糟糕选择,而 Node.js 是一个不错的选择。这是真的吗?如果是,那是为什么?
- 是否可以打开从客户端到服务器的 websocket,以监听特定模型的某些更改? (例如,当消息模型中有新消息时,更新 DOM)
非常感谢任何帮助!
【问题讨论】:
-
基本上你需要设置一个 javascript 间隔,并每隔 n 秒调用一个 ajax 函数来检查更新(新消息),这应该是 php/python 实现的整体行为,在节点你不需要设置超时,因为客户端js会询问节点服务器是否有新消息,只有当有更新时服务器才会向你发送该更新,这只是为了给你一个提示当有人给你一个更好的答案时。如果是我,我会使用 node.js,它正是为这种应用程序而创建的。
-
您好 Zarich,感谢您的评论。但这不是投票吗?我想实现一个实际的“实时”功能。
-
是的,这就是为什么 node.js 在这类事情上更好,但等待真正的答案 =)
标签: javascript django node.js websocket push-notification