Tag: websocket

发送socket.io实例来表示路由

我正在尝试创build一个nodejs应用程序,它将使用他们的API在各种网站中进行search。 一旦从使用socket.io的API接收结果,结果将被发送到客户端。 然后前端将使用jQuery添加这些结果。 什么是实施这个最好的方法? 到目前为止我已经尝试过: 示例代码1 起初,我创build了一个快递中间件,将套接字添加到请求中 – var socketMiddleWare = function(req, res, next){ io.on('connection', function(socket){ console.log(io.engine.clientsCount + " clients connected."); req.socket = socket; socket.on('disconnect', function(){ console.log(io.engine.clientsCount + " clients after disconnec."); }); }); next(); }; 然后将这个中间件添加到我的路线 – app.use('/users', socketMiddleWare, users); 它的工作原理,但问题是每次用户刷新页面时都会创build多个事件监听器。 示例代码2 所以然后我试了(示例代码) io.on('connection', function(socket){ console.log("user connected"); global.socket = socket; socket.on('disconnect', function(){ console.log("disconnect"); }); […]

Socket.io客户端到客户端的逻辑,有很多用户

我试图在我的应用程序中使用socket.io和node.js和Android实现客户端到客户端的消息传递。 我search了一下,发现了很多教程,解释了在通过socket.io套接字发送消息时如何处理针对特定客户端的问题。 用socket.io和node.js发送消息给特定的客户端 解决scheme几乎总是相同的:创build一个hashmap对象,将用户信息(如username , email address (或任何可以识别的唯一标识))与其socketid 。 然后调用io.clients[sessionID].send() 现在我有两个问题: 如果只有一个app实例正在运行,这将工作,但想象如果我的应用程序分为多个实例(对于大型应用程序)。 如果连接到实例X的客户端A想要发送消息给连接到实例Z用户B ,该怎么办? 如果在示例中看到的是,直接将脚本存储在脚本中存在的简单对象中,则某些套接字将不知道其他实例中存在的其他用户。 如果我完全错了(我可能),这是一个很好的做法,将所有用户的socketids存储在一个单一的variables? 如果是的话,50000+的用户环境还是可以的吗? 如果不是,我应该find另一个解决scheme,像在数据库中存储用户的socketids ?

StrongLoop Websockets

我需要一个实时数据由客户端应用程序stream。 StrongLoop(或任何StrongLoop组件)是否支持基于Websockets的CRUD。 考虑这个图像: 请指教。

meteor远程ddp连接集合不允许更新操作

我目前使用以下方式将meteor应用程序A连接到另一个meteor应用程序B(DB所在的地方): 在应用程序A: remote = DDP.connect('http://url.of.app.B'); Booking = new Mongo.Collection('booking', remote); Booking.allow({ insert: function(userId, doc){ return false }, update: function(userId, doc){ return true }, remove: function(userId, doc){ return false } }); 而且已经能够find操作就好了。 但是,如果我试图做一个更新操作(使用Meteor方法调用来更新服务器端(应用程序A)): Booking.update({_id: bookingId}, {$set: {arrived: true} }); 不过,在更新被调用后,我一直在我的应用程序A上收到错误日志: 更新失败:访问被拒绝。 不允许validation器在限制集合上设置方法“更新”。 [403] 任何想法如何解决这个问题? 我已经做了允许/拒绝规则,但它仍然不工作…

Google云平台上的Websockets

我试图在谷歌应用程序引擎中运行一个nodejs websocket(socket.io)服务器。 如果我理解正确谷歌目前不完全支持websockets,并为了让我的nodejs应用程序中的websockets服务器,我将不得不使用自定义运行时。 我已经阅读过,如果你使用自定义运行时,你的应用程序将不会扩展,这对我来说非常重要,尤其是因为它是一个nodejs应用程序。 这是真的吗? 我可以以某种方式在我的应用程序上创build一个负载平衡器,并运行多个实例,websockets仍然工作? Google什么时候开始全面支持websockets? 谢谢你,Arik

使用nodejs + socket.io的websocket服务器不能通过testing站点连接,而ws可以

我想创build一个websocket服务器。 我听说socket.io是一个不错的select。 我用nodejs(v4.4.7)(npm install –save socket.io)尝试socket.io,使用它的示例服务器端代码 。 有一点困惑,为什么客户端代码使用“http://”而不是“ws://”协议,但是在我设置了一个真正的服务器进行testing之后,我发现“http //”和“ws //”将使用官方代码工作。 一切都很好,直到现在。 但很快我发现我不能使用第三方在线testing站点build立连接,如: 1. www.websocket.org/echo.html 2. www.blue-zero.com/WebSocket 连接似乎从来没有build立或closures尽快连接, 在Firefox控制台中,我发现“Firefox无法在ws:// mytestserver:8888 /?encoding = text中build立与服务器的连接” 或“WebSocket连接到'ws:// mytestserver:8888'失败:连接在收到握手响应之前closures”。 最后我把socket.io改成了ws(npm install –save ws)。 使用来自github.com/websockets/ws的示例代码。 所有testing站点运行良好。 (当然,我的最终目的不是让一个testing者站点工作,事实上,基于集成在我的芯片中的nopoll的websocket lib与testing者站点具有完全相同的行为。) 有谁知道为什么socket.io不能与第三方客户端同时工作吗? 非常感谢。

使用SSDP显示networking中的所有设备

我经常使用这个问题,但对于我究竟是做什么是可能的,我还是有点困惑。 基本上,我试图添加一个下拉菜单到我的Web应用程序,其中列出了连接到networking的所有设备。 当我说设备时,我不是在谈论所有的设备; 我正在谈论某些我正在使用SSDP的硬件设备。 我已经创build了发送M-SEARCH的Node.js程序,并成功find所有的设备,但我明白,Node.js不是一个浏览器的JavaScript,并且我不能显示在一个terminal上的节点调用的输出浏览器(请纠正我,如果我错了)。 在做了一些更深入的研究之后,我意识到在浏览器上做这种types的替代方法是创build某种能够执行SSDP并发送Msearch的Chrome扩展,或者使用websocket打开websocket API(不要认为这对我的SSDP特别有用,但我可能是错的)。 鉴于我想要做的是,这些替代scheme是否有帮助。 我试图做甚至可能吗? 我再一次在这个话题上做了研究,但是我还没有find明确的答案。 如果可能的话,我真的很感谢链接教程或只是一般想法如何完成我想要做的事情。 我知道我最近在StackOverflow上发布了一些关于这个的东西,没有得到答案或答复,但是我对这个话题做了更多的研究,觉得我有更好的理解。 话虽如此,我仍然感谢如何解决这个问题的一些方向,因为我没有在网上find任何有用的东西。 感谢您的时间!

Node.js缓冲区与types化数组 – 性能

要发送带有WebSocket的二进制消息,我可以使用Node.js缓冲区或Typed Arrays 。 他们之间在performance方面是否有显着差异?

socket.io中的socketvariables是什么

我是Node.js和socket.io的新手。 我去官方网站的socket.io,并尝试一个教程。 http://socket.io/get-started/chat/ 它在我的电脑上正常工作。 但是我根本无法理解它的代码的本质。 问题:什么是下面的代码中的“套接字variables”。 它从哪里来? io.on('connection', function(socket){ socket.on('chat message', function(msg){ io.emit('chat message', msg); }); }); 也许“msgvariables”是stringtypesvariables。 而从客户方面来说,对吗?

使用Web套接字从数据库到客户端的实时数据更新/更改

我正在尝试使用Web套接字构build一个实时应用程序。 目前我正在使用ajax从客户端拉(每个固定的时间间隔)来获取数据库表的新变化。 我并不完全了解如何使应用程序实时。 当前实施: 在我的应用程序中,我通过从数据库(MariaDB)的ajax轮询获取数据,并在客户端的表中显示它。 预期的行为: 从客户端没有轮询,每当数据库端发生变化,它应该在所有连接的客户端更新。 在我的search过程中,我遇到了一些解决scheme: Node.js + server.io + oracle数据库 RethinkDB 服务器发送事件 连续查询通知 请帮助我find更好的解决scheme。