Tag: 套接字

Node.js“净”连接负载均衡

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

Node.js套接字pipe道方法不会pipe最后一个数据包到http响应

我有使用Express作为networking应用程序的节点服务器。 此服务器与另一端TCP服务器创build一个tcp套接字连接。 我正在尝试将tcp数据传递给用户http响应。 它工作正常,但最后的tcp数据包没有pipe道http响应。 所以,下载的网页浏览器下载状态为99.9%。 我的源代码如下。 任何人都可以帮我解决这个问题? 提前致谢。 app.get('/download/*', function(req, res){ var tcpClient = new net.Socket(); tcpClient.connect(port, ip, function() { // some logic }); tcpClient.on('data', function(data) { /* skip … */ tcpClient.pipe(res); // This method is called once in the 'data' event loop /* skip … */ }); tcpClient.on('close', function() { clog.debug('Connection closed.'); }); tcpClient.on('end', […]

Node.js UDP客户端处理来自udp服务器的响应

我正在尝试在node.js中写一个应用程序来发送一个udp请求到一个设备(它有udp服务器),然后接收响应并显示它。 该设备以这样的方式工作,即在其端口11220上接收到请求时立即返回响应。 下面的代码发送一个udp请求到设备,设备立即回应(我可以在wireshark中看到它),但我无法处理/显示恢复的消息 。 或者至less我只是想在收到来自设备的回复时能够显示消息。 请让我知道我的代码中缺less什么或给我一个完整的代码来做到这一点。 非常感谢。 另外,我不喜欢使用socket.io等 var PORT = 11220 ; var HOST = '192.168.1.111'; var dgram = require('dgram'); var message = new Buffer(9); var client = dgram.createSocket('udp4'); client.send(message, 0, message.length, PORT, HOST, function(err, bytes) { if (err) throw err; console.log('UDP message sent to ' + HOST +':'+ PORT); client.close(); }); client.on('listening', function […]

当节点服务器重新启动时,如何存储/保留套接字连接

我正在使用webrtc.io创build我的audio,video聊天应用程序的套接字连接。 我想保留所有套接字连接,以便在重新启动node.js服务器时向所有最终用户发送更新。 我正在使用Mongodb作为这个应用程序的数据库。 有没有办法存储在数据库中,并重新启动服务器时检索它?

在最新的Openshift更新之后,Socket.IO客户端无法连接到Socket.IO nodejs服务器

我有一个运行在Openshift上的socket.io(v0.9.16)的nodejs v0.10服务器,在过去的2个月里,从使用AndroidAsync连接到服务器的Android应用程序接收数据没有问题( https://github.com / koush / AndroidAsync )。 在Openshift在2月25日升级服务之后,Android应用程序无法连接到服务器。 每次应用程序尝试连接服务器时,服务器将输出一个错误,我在debugging模式下运行Socket.IO,这出现(debugging:销毁nonsocket.io升级)。 有趣的是,相同的服务器也托pipe我的networking客户端运行相同的socket.io库,并没有任何问题与Web客户端。 有人能指点我正确的方向吗? 我用http://www.xxxxxx.com:8000/连接到服务器,其中8000是Openshift提供的websocket端口。 我读到“销毁nonsocket.io升级”可能是由于无效/不兼容的socket.io js文件,我试图通过在我的浏览器中input这个手动检查socket.io文件 http://www.xxxxxx.com:8000/socket.io/1/ 我得到这个返回码: 一个-vI1BJofr45j9c_GmH:60:60:的WebSocket,HTMLFILE,XHR轮询,JSONP轮询 PS:我的Android代码没有改变,我的服务器代码也没有改变。 PPS:我已经在localhost环境和我自己的服务器上成功连接了。 所以这个问题最有可能来源于Openshift,不知道有什么更新来打破它。

包括socket.io服务器到我的HTML

我已经成功运行了我的nodeServer和客户端。 但是我想把它的服务器连接到一个代理服务器上。 这里是节点客户端: <html> <head> <script src="http://localhost:8000/socket.io/socket.io.js"></script> <script src="http://code.jquery.com/jquery-1.6.2.min.js"></script> <script> var name = ''; var socket = io.connect('http://localhost:8000'); // at document read (runs only ones). $(document).ready(function(){ // on click of the button (jquery thing) // the things inside this clause happen only when // the button is clicked. $("button").click(function(){ // just some simple logging $("p#log").html('sent […]

Sails.js,获取请求params一个json对象

我在Sails.js中使用套接字 以下是一个示例客户端代码: socket.get('/message/send', {from: userId, to: recepientId, content: textMessage}); 这就是我如何获取控制器(服务器)中的数据: var to = req.param('to'); var from = req.param('from'); var content = req.param('message'); 现在,因为我发送的数据作为JSON,我想把它作为一个JSON对象。 所以消息最终是一个模型,我想直接使用json对象将数据存储在数据库中。 我使用socket.emit('channel',{userId: "someId"})时,类似的东西对我来说是有效的。所以我在socket.on('channel', function(userJsonObject){});接收到一个JSON对象socket.on('channel', function(userJsonObject){}); 那么当我使用socket.get()时,如何得到类似的JSON对象

node.js socket.io脚本在1-2天后被SIGSEGV杀死

我正在运行我的node.js服务器永远和我的脚本被杀死在1-2天,我得到这个错误在日志文件中: error: Forever detected script was killed by signal: SIGSEGV 现在我在我的node.js脚本中有很多function。 在每个函数的开始写一个console.log结束了在日志中得到这个: info: transport end (undefined) debug: set close timeout for client CbU1mvlYaIvDWHB4ChQa debug: cleared close timeout for client CbU1mvlYaIvDWHB4ChQa disconnection function debug: discarding transport debug: clearing poll timeout debug: client authorized info: handshake authorized 2O3m1B3dGWFOJ4W9ChQc error: Forever detected script was killed by signal: SIGSEGV […]

列出聊天室中的用户

这是一个重复的问题,虽然我想问一下它的更多的澄清。 我想创build一个使用socket.io的私人聊天。 当用Googlesearch时,我发现了两个解决scheme: 使用数组来存储活动的用户列表 使用房间的概念 假设我的应用程序有数百万活跃用户。 这是我想要的:我有我的朋友列表在MySQL数据库,当我login,我想所有的朋友和他们的地位(活跃与否)。 案例1.如果我使用数组来存储所有活动的用户,那么它工作得很好,但这是一个好方法来存储连接到我的应用程序在数组中的所有用户? 情况2.如果我使用每个用户朋友都有一个独特的roomid的房间概念,那么无论何时用户login,他必须join所有这些房间。 它也适用于我,但在这种情况下,我怎么知道我的朋友是否活跃? 我想知道哪个解决scheme可以为我的应用程序工作,这将有数百万用户,或者有任何其他方式来解决这个问题。

Socket.io连接不当我改变我的无线networking

我正在使用node.js + socket.io聊天应用程序。 我注意到,当我改变我的无线连接,sockets停止工作。 我怎样才能得到这个工作? 这是我的客户端连接代码 var socket = io.connect("https://website.com:8080", { 'reconnection delay': 500, 'reconnection limit': Infinity, 'max reconnection attempts': Infinity });