Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Node.js和Socket.io – 他们可以用实时Web应用程序走多远?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我将构建一个Web应用程序来管理笔记(想想类似于Evernote的东西).我决定使用BACkbone.js JQuery客户端.
服务器端,我还没有决定:要么是纯 PHP(我非常清楚),要么是Node.js Socket.io(对我来说是全新的).

我正在虑Node.js Socket.io,因为我希望我的Web应用程序是实时的(即:如果用户更新了一个注释,该注释会立即更新为共享该注释的协作者,而无需重新加载页面) .

作为第三种选择,我还在虑将Node.js和Socket.io用于UI,将PHP用于REST API(使用PHP构建API感觉更舒服). PHPJavascript代码将共享MongoDB数据库.

我的问题是:如果我使用PHP为我的Web应用程序开发REST API,并且通过API创建用户的新注释(即:Android应用程序发送API请求以创建该注释),Node.js,Socket.it和BACkbone.js能够立即更新用户的UI并在屏幕上显示新的笔记吗?我认为这可以称为“推送@L_450_16@”.

我希望我很清楚.

此外,有没有其他优秀的技术来构建实时Web应用程序?

解决方法

是Node.js Socket.IO会做得很好.节点使用事件循环,这意味着在请求时它被输入队列. Node逐个处理这些请求.传统的Web服务器处理“每请求线程”方法,其中创建线程来处理该请求.

Node的好处在于它不需要经常进行上下文切换,这意味着它可以非常快速地处理这些请求…最有可能比PHP服务器更快.但是,Node在单个cpu核心上作为单个进程运行.如果您的应用程序是cpu密集型的,那么它可能会阻塞,这意味着每个请求的时间会变慢.

然而,听起来我的应用程序不是cpu密集型的,这意味着Node.js可以很好地工作.

决策
如果您的时间有限,并且您不想学习新技能(节点),PHP就可以了.如果您有时间我建议学习Node.js,因为它在I / O密集型任务(例如用于创建Notes的REST API)方面非常强大.

更新UI
如果您的预期用途是通过移动设备,我建议使用WebSockets,但需要使用长时间轮询等后备.可以使用Node或PHP更新Client UI.但是从我的经验来看,使用Node.js上的Socket.IO更容易.

示例使用Node.js / Socket.io更新客户端

客户端

socket.on('new-note',function (data) {
    placeNewNote(data);
  });@H_673_38@ 
 

服务器端

socket.emit('new-note',data);@H_673_38@ 
 

节点入门:
How do I get started with Node.js

另请注意,如果您要构建使用WebSockets的原生Android移动应用程序,则需要使用:Java socket.io client

大佬总结

以上是大佬教程为你收集整理的Node.js和Socket.io – 他们可以用实时Web应用程序走多远?全部内容,希望文章能够帮你解决Node.js和Socket.io – 他们可以用实时Web应用程序走多远?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。