我是大规模服务器端开发的新手.我想使用Node.js编写一个服务器,但在我开始之前,我想知道将节点扩展到每秒20个查询的一般原则是什么.
我正在编写的服务主要是数据库的接口,以及输入数据的认证和验证.
我想知道是否可以在同一个node-websocket-server应用程序实例上运行的不同websocket"连接"上进行广播.想象一下,聊天服务器有多个房间,只在单个node.js服务器进程上向每个房间的参与者广播消息.我已成功实现了每个进程一个聊天室的解决方案,但我希望将其提升到新的水平.
我得到了很多人的帮助,现在我想回馈.对于那些使Node.js服务器与MongoDB一起工作有困难的人来说,这就是我所做的.
我有几个socket.io实例,在HAProxy下运行身份验证,我需要强制认证请求和套接字连接转到同一个实例.我已根据对SO问题的答案设置了HAProxy,并进行了一些修改,如下所示:
global
maxconn 4096 # Total Max Connections. This is dependent on ulimit
nbproc 2
defaults
mode http
frontend all 0.0.0.0:80
timeout client 86400000
default_backend www_backend
acl is_websocket hdr(Upgrade) -i WebSocket
acl is_websocket hdr_beg(Host) -i ws
use_backend socket_backend if is_websocket
backend www_backend
balance url_param sessionId
option forwardfor # This sets X-Forwarded-For
timeout server 30000
timeout connect 4000
server server1 localhost:8081 weight 1 maxconn 1024 check
server server2 localhost:8082 weight 1 maxconn 1024 check
server server3 localhost:8083 …Run Code Online (Sandbox Code Playgroud) 我有兴趣设置一个Socket.IO服务器+ Rails Web应用程序.但是,正如许多人所知,支持WebSockets的Web服务器并不多.到目前为止,这是我的两次尝试:
我尝试了Nginx模块路由.无法获得编译+配置的组合以使其完全正常工作.对我来说可能有些愚蠢.
我尝试使用node-http-proxy编写自己的Web服务器,但是我无法完全将它与Socket.IO集成,尽管阅读了所有教程.
我尝试使用bouncy.js编写自己的Web服务器,但速度非常慢.可能是我的代码,可能是框架.我不知道.
这些是我尝试过的东西,而且我只是好奇还有其他人走了这些路线并最终得到了一些工作(当然,他们为了让它发挥作用而做了什么).
我有一个在Apache服务器上运行的现有PHP应用程序.
问题,是否可以通过"Proxy-Pass"嵌入到NodeJS服务器中说Socket.IO客户端JS?
比如说,我在数据库中用PHP保存了一个键值对,同时将该消息发送给连接到该通道的每个人,我刚刚保存的值.
如果我使用NodeJS和Socket.IO/Faye,我会将客户端JS嵌入Apache提供的页面中.但基本上该脚本来自Proxy-Pass到NodeJS.
对此的一些启示将是非常友好的.
谢谢