设计实时 Web 应用程序(Node.js 和 socket.io)

     2023-02-16     185

关键词:

【中文标题】设计实时 Web 应用程序(Node.js 和 socket.io)【英文标题】:Designing real-time web application (Node.js and socket.io) 【发布时间】:2012-05-30 08:35:40 【问题描述】:

我想问一些好的做法。我有一个 Node.js (Express) Web 服务器和 socket.io 推送服务器(以防技术问题)。我可以将它们都变成一个应用程序,但我希望它们分开(如果需要,它们可以相互通信)。这样做有两个原因:

    将更容易管理、调试和开发应用程序; 扩展应用程序会容易得多。如有必要,我可以添加另一个推送服务器或 Web 服务器实例;

这至少是我所相信的。唯一的问题是,当客户端连接到单独的 socket.io 服务器时,它不会发送 cookie(不同的端口,跨域策略)。

我想出的解决方法是在前面放置一个反向代理(也是用 Node.js 编写的)并检查我们正在处理的请求类型,并将其发送到 Web 服务器或相应地推送服务器。太好了,现在我们在 Web 服务器和推送服务器中都有 cookie。反向代理可以是负载均衡器,这是一个额外的好处。

在我看来这是个好主意。你觉得这个设计怎么样?也许还有其他解决 cookie 问题的方法?

【问题讨论】:

【参考方案1】:

我最近做了一些类似的事情,我们最初使用 node.js 反向代理,但遇到了可靠性/可扩展性问题。我们发现提供静态文件和代理请求最好留给 nginx。 haproxy 也是一个非常可行的独立代理解决方案。

HaProxyNginix as a reverse proxy

【讨论】:

是的,HaProxy 真的很酷。您是否使它与 WebSockets 一起使用?因为我在这里遇到了一些问题。 我会将此答案标记为正确,因为它给了我很多好主意(HAProxy 是最好的:))。后果之一是我不想再使用 Socket.IO(有关更多详细信息,请参阅此问题:***.com/questions/11115863/…)。谢谢!

node.js—简介

...性。这使得它摒弃了传统平台依靠多线程来实现高并发的设计思路,而采用了单线程、异步I/O、事件驱动式的程序设计模式。Node.js有着强大而灵活的包管理器(nodepackagemanage 查看详情

node.js学习一

...的可扩展性。它採用了单线程,异步石IO,事件驱动式的设计模式。Node.js有着强大而灵活的包管理器(nodepackagemanager)npmnode.js架构设计:1,异步式I/O 查看详情

node.js

...性。这使得它摒弃了传统平台依靠多线程来实现高并发的设计思路,而采用了单线程、异步I/O、事件驱动式的程序设计模式。Node.js有着强大而灵活的包管理器(nod 查看详情

node.js

...性。这使得它摒弃了传统平台依靠多线程来实现高并发的设计思路,而采用了单线程、异步I/O、事件驱动式的程序设计模式。Node.js有着强大而灵活的包管理器(nod 查看详情

使用 Angular.js 和 Node.js 构建实时应用程序的更好方法是啥?

】使用Angular.js和Node.js构建实时应用程序的更好方法是啥?【英文标题】:Whichisthebetterwaytobuildreal-timeapplicationsusingAngular.jsandNode.js?使用Angular.js和Node.js构建实时应用程序的更好方法是什么?【发布时间】:2012-12-1421:09:54【问题描... 查看详情

目前nodejs都有啥框架呢?哪个最好

...SailsSails很容易]创建自定义的,企业级的Node.js应用。它被设计成你熟悉的类似RubyonRails的MVC框架,但是又可以满足现代应用的需要:可扩展的数据驱动接口,面向服务的架构。它特别擅长设计图表,时时表单,或多人游戏,你可... 查看详情

Heroku上的Node.js Web Socket H15空闲连接超时

...7:39:24【问题描述】:我们在Heroku上运行一个Node.js和Express应用程序,该应用程序使用ws库来实现实时Web套接字。下面是我们看到的众多H15超时的屏幕截图。我读过Herokuterminatesany 查看详情

使用node.js+socket.io搭建websocket实时应用

Web领域的实时推送技术,也被称作Realtime技术。这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新。它有着广泛的应用场景,比如在线聊天室、在线客服系统、评论系统、WebIM等。作者:潘良虎链接:https://www... 查看详情

websocket与node.js完美结合

...术往往能发挥越重要的作用,随着各种新的技术的诞生,实时web技术已经走进我们。websocket和node.js使开发实时应用非常简单,同时性能也非常高。关于websocketwebsocket是html5的重要feature,它直接在浏览器上对与socket的支持,这给... 查看详情

node.js优缺点

...omeV8引擎进行代码解释3.基于事件驱动4.轻量高效,实用于实时数据交互应用5.nodejs的非阻塞IO带来了低资源耗用下的高性能和出众的负载能力6.是一个跨平台生态系统,覆盖Web开发,移动开发,桌面开发,通过reactnative和node生态系... 查看详情

node.js初识

...Node.js优点:1、采用事件驱动、异步编程,为网络服务而设计。其实Javascript的匿名函数和闭包特性非常适合事件驱动、异步编程。而且JavaSc 查看详情

JavaScript 和 Node.js RESTful Web 应用程序 [关闭]

】JavaScript和Node.jsRESTfulWeb应用程序[关闭]【英文标题】:JavaScriptandNode.jsRESTfulwebapplication[closed]【发布时间】:2015-01-1301:34:21【问题描述】:我一直在做大量的研究,因为我想使用JavaScript和Node.js创建一个带有SQL后端的Web应用程序... 查看详情

Node.js 应用程序的授权方法和设计模式 [关闭]

】Node.js应用程序的授权方法和设计模式[关闭]【英文标题】:AuthorizationapproachesanddesignpatternsforNode.jsapplications[closed]【发布时间】:2012-11-1219:57:58【问题描述】:我正在为内部企业软件平台构建多页面管理界面。想想很多将各种AP... 查看详情

为啥要用nodejs服务

....js会充分利用流式数据这个特点,构建非常酷的应用。如实时文件上传系统transloadit准实时应用系统——如聊天系统、微博系统,但Javascript是有垃圾回收机制的,这就意味着,系统的响应时间是不平滑的(GC垃圾回收会导致系统这... 查看详情

node.js 和 PHP 之间如何通信?

...站,我希望使用node.js添加一个实时通知系统我已将我的应用程序的结构概述到下图中:我假设生成通知时PHP和Node.js之间的通信是实现实时通知的唯一方法(除非我在node.js中重新编码我的整个网站,这是不可能的)我如何从 查看详情

适用于 Web 和移动应用程序的 node.js 服务器

】适用于Web和移动应用程序的node.js服务器【英文标题】:Anode.jsserverforbothwebandmobileapp【发布时间】:2017-03-1921:46:04【问题描述】:我正在通过Unity创建一个游戏,我想将玩家的分数上传到MongoDB。因此,我搭建了一个node.js服务器... 查看详情

使用 Node.js/socket.io 和 php/mysql 的 Web 应用程序

】使用Node.js/socket.io和php/mysql的Web应用程序【英文标题】:WebapplicationusingNode.js/socket.ioandphp/mysql【发布时间】:2017-01-2511:51:00【问题描述】:我对node.js和socket.io比较陌生。目前我有一个完成了一半的私人网络项目,它只在服务器... 查看详情

如何将 Asterisk ARI 与 socket.io 和 Node.js 一起使用

...ode.js和最近的socket.io,以便我最终可以为星号制作实时Web应用程序。所以作为一个有根据的猜测,Node.js有点像Asterisk和Socket之间的中 查看详情