2013-12-16 61 views
1

我研究的Node.js网库的潜力来实现一个聊天服务器。我对node.js非常陌生。我想知道如何在多个服务器间负载平衡网络TCP服务器的客户端连接(以处理大负载),并且可以将消息发送到服务器上的所有连接。有没有可以提供帮助的服务器?或者我应该看看socket.io或其他库的实施?Node.js的“网”连接负载均衡

回答

2

开发Mote.io,当我遇到类似的问题来了,决定去一个托管解决方案,而不是建立一个负载平衡器。处理这个问题非常困难,因为您需要跨服务器同步数据或将客户端负载平衡到同一实例,以确保它们获得所有相同的消息。

Socket.io不会有太大的帮助。您需要实施redis,一些其他数据同步或负载平衡应用程序。

PubNub会照顾这一点。后端负责在一个抽象级别同步消息,负载均衡等,所以你只需提供一个通道名称,PubNub将确保该通道中的所有客户端都能获得该消息。

在代码

enter image description here

Enter Chat and press enter 
<div><input id=input placeholder=you-chat-here /></div> 

Chat Output 
<div id=box></div> 

<script src=http://cdn.pubnub.com/pubnub.min.js></script> 
<script>(function(){ 
var box = PUBNUB.$('box'), input = PUBNUB.$('input'), channel = 'chat'; 
PUBNUB.subscribe({ 
    channel : channel, 
    callback : function(text) { box.innerHTML = (''+text).replace(/[<>]/g, '') + '<br>' + box.innerHTML } 
}); 
PUBNUB.bind('keyup', input, function(e) { 
    (e.keyCode || e.charCode) === 13 && PUBNUB.publish({ 
     channel : channel, message : input.value, x : (input.value='') 
    }) 
}) 
})()</script> 
的10行即时聊天应用