Javascript-实时Web编程:如何工作?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javascript-实时Web编程:如何工作?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1862字,纯文字阅读大概需要3分钟。
内容图文
![Javascript-实时Web编程:如何工作?](/upload/InfoBanner/zyjiaocheng/679/87156e08c96b4c35abc9c797a8c3e449.jpg)
作为一名Web开发人员,我在Redis或Pusher等第三方服务的帮助下开发了聊天服务和其他一些实时协作服务.它们提供了简单的API,我可以使用发布/订阅模型来实现Web服务器上的双向通信.我现在想在不使用任何第三方服务的情况下实现一个简单的推送通知,但是我不确定如何实现.情况如下:
>后端使用Python(Django)
>一个用户收到另一个用户的私人消息.
>应该通知收件人,而不必刷新Web浏览器.
我的问题:
>从post开始,Django似乎是实现这种功能的一个不好的选择,而Node.js是一个很好的选择.是真的吗如果是,那为什么呢?
>是否可以打开从客户端到服务器的websocket,以侦听对特定模型的某些更改? (例如,消息模型中有新消息时,请更新DOM)
我非常感谢您的帮助!
解决方法:
WebSockets正是您想要的.但是,它们是(相对)最近添加到浏览器中的,因此,支持并不普遍. WebSocket Support
Websocket模型允许您使用Web浏览器将套接字从服务器连接到客户端,然后从服务器发送消息并在客户端异步接收消息,反之亦然.
因为Node.js是Javascript,而且您很可能会用Javascript编写客户端,所以它很适合作为编写耦合组件的明智选择,例如在这种情况下.
最受欢迎的WebSocket库是Socket.io,该库旨在与Node.js一起使用.使用Socket.io,您的通知模型将如下所示:
服务器
io.sockets.on('connection', function (socket) {
socket.emit('notification', { name: 'Notification', message: 'It\'s here');
});
客户
var notifications = document.getElementById('nlist');
socket.on('notification', function(notification) {
var div;
// make some DOM changes
document.title = notification.name;
div = document.createElement('div');
div.innerHTML = notification.message;
notifications.appendChild(div);
socket.emit('received-notification');
});
Socket.io允许您使用自定义事件名称,如下所示,这使设计通信API变得容易一些.在用户没有Web套接字的情况下,它还具有XHR Long Polling和Flash套接字的后备功能.
在这种情况下,Node的速度将比Django快,但是如果这是您首次涉足Node,您可能会发现您的代码库在Django中更易于管理.设计带有一系列这样的回调的应用程序可能有点困难.我从未在Django中使用过WebSockets,但是我在Tornado和WebSockets方面的经验很差.
内容总结
以上是互联网集市为您收集整理的Javascript-实时Web编程:如何工作?全部内容,希望文章能够帮你解决Javascript-实时Web编程:如何工作?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。