Tag: websocket

Socket.io聊天应用程序,也可以发送图像,甚至文件

我最近对Socket.io项目感兴趣,不知道是否有简单的方式发送图像,甚至其他types的文件,而无需使用其他库。 我并不是试图将file upload到服务器来存储,我只是想把它传播给当时在聊天室里的那些人。 所以代码应该是最小的。 然而,我在编码/解码的东西真的很糟糕,所以一些示例代码会很好。

Node.js到Socket.io时间延迟

我正在使用Node.js(v0.12.4)和Socket.io(1.3.2)实时交易应用程序。 在这种情况下,当从Node.js发送到GUI(Socket.Io)的响应时,我面临着几乎(100毫秒)的时间延迟。 我不知道为什么在从Node.js向GUI(Socket.IO)发送数据的时候有延时。 这发生在生产现场。 而且我们也试图在生产服务器位置debugging这也是由于networking延迟。 但是同样的结果。 请任何人帮助我呢?

Websocket连接设置需要相当长的时间 – 这是正常的吗?

当客户端和服务器都在我的机器上本地运行时,似乎需要大约1秒来build立websocket连接。 这对我来说似乎相当长时间 – 是吗? 任何人都可以比较这与他们自己的经验? 细节: 我在客户端(Chrome 25,Windows7 64)上有这样的websocket请求: this.ws = new WebSocket('ws://' + host + ':' + port); 在服务器端,我有运行ExpressJS的 Node和einaros / ws处理升级和WS连接。 我在客户端计时,从新的WebSocket()到ws.onopen事件之前。

如何使websockets在node.js中通过代理

推广这将是一个问题…如何使websockets通过node.js代理? 在我个人的情况下,我使用pusher.com和他们推荐的node.js客户端库 。 在代码里面,我想知道我应该改变的一些提示,以便使这个库能够与代理一起工作…你可以看看这里的代码 也许我应该以某种方式replace或修改库正在使用的websockets模块 ? 编辑 感谢您的回答/评论! 一些事情要考虑(对不起,如果我有一些/所有的人都错了,只是学习): 我不想创build代理服务器。 我只想使用我公司内现有的代理服务器来代理我的websockets请求(特别是pusher.com) 只是为了让你知道,如果我使用像Windows Proxifier这样的代理服务器,我build立了规则来检查所有连接到端口443去通过代理服务器proxy-my.coporate.com:1080(typesSOCKS5)它就像一个魅力。 但我不想这样。 我想编程在我的节点js代码中configuration这个代理服务器(即使涉及修改我提到的推进器库) 我知道如何使用Request模块为HTTP执行此操作(查找提及如何使用代理的部分)。 我想为websockets一个类似的东西。

在GAE上运行Websocket

我正在尝试使用websocket在GAE上运行我的应用程序,但是阅读Docs,我没有find解决这个问题的方法。 使用这样一个非常简单的应用程序: https : //github.com/marcosbergamo/gae-nodejs-websocket 这是我试用示例演示。 但是当我尝试连接到我的websocket时收到这个错误; 按照请求的图像;

数组和ArrayBuffer有什么区别?

我只是想知道为什么每个人都使用ArrayBuffer而不是一个正常的array , string或stringJSON从服务器发送消息到客户端。 效率更高吗? 另外,只是想知道Uint8Array是什么,它是如何不同,在哪里使用两个等等。 我目前正在使用Node.js与Socket.io,但我很乐意改为纯WebSocket s,如果这是一个更好的方法。

如何将JavaScript对象转换为节点缓冲区?

我在我的节点服务器上使用Buffer ,在我的Java客户端上使用Buffer 。 为了节省字节的目的,我正在寻找发送我的数据到服务器通过websockets作为二进制相对于JSON。 所以,如果我有[ 5, false, 55, "asdf" ]的Javascript对象,我想在发送之前将其转换为客户端上的缓冲区。 也许这样的事情: object.toBuffer('int16', 'bool', 'int16', 'utf8'); 并在服务器上读取它像这样: var obj = buffer.read('int16', 'bool', 'int16', 'utf8'); 我正在看当前的解决scheme,看起来我可能只需要做很多concat ing,指定字节偏移量/长度,从int转换为布尔值等。 有没有更好的办法? 编辑:这是我觉得你现在必须这样做。 我想我的问题只是它太冗长和容易出错,我正在寻找一个更简洁和优雅的方式来做到这一点,因为这个操作将在我的代码中的许多不同的地方执行。 // On client for [ 5, false, 55, "test" ] const writeFirst = Buffer.allocUnsafe(2); writeFirst.writeInt16LE(5, 0); const writeSecond = Buffer.allocUnsafe(1); writeSecond.writeUInt8(0); const writeThird = Buffer.allocUnsafe(2); writeThird.writeInt16LE(55, 0); […]

RESTful后端和socket.io进行同步

今天,我有了以下设置的想法。 创build一个nodejs服务器以及express和socket.io 。 有了快递,我会创build一个RESTful API,连接到一个mongo。 BackboneJS或类似的将客户端连接到该REST API。 现在,每当MongoDB(即iam感兴趣的数据)发生变化时,socket.io就会向客户端发送一个事件,这会对已经发生变化的数据进行处理。 然后,客户端会触发相应的AJAX请求到REST,以获取需要的新数据。 所以,socket.io连接的行为就像是一个同步触发器。 整个访问将在那里,也可以这样pipe理会话。 所有的有效载荷将通过http发送。 优点: REST API可用于其他客户端而不是Web Auth可以完全通过socket.io完成。 只发送令牌和REST请求。 使用REST的好处。 还可以和Redis这样的pub / sub服务很好的玩, 缺点: 比使用纯socket.io更大的开销。 你怎么看,有没有我没有想到的很大的缺点?

将数据保存在Socket.IO中的套接字上

我想在服务器端保存一些数据,所以每当客户端发送任何数据到服务器,我希望这些数据可用! 一个用例可以将一个令牌存储在套接字上。 当客户端第一次连接时,它会发出令牌(如果有的话),或者它会显示login页面,然后login数据将被发送到服务器。 无论是哪一个,我都希望将令牌存储在服务器上,以便之后的每个请求都不需要指定令牌。 之后,我将使用RedisStore ,所有的数据都可以访问运行该应用的所有服务器。 我唯一的问题是,我在哪里将数据存储在套接字上,以便与该客户端相关联?

在ec2实例上使用socket.io获得“websocket连接无效”错误?

我有这个networking应用程序与express和socket.io使用node.js编写,该应用程序在本地主机上运行良好,但是当我推到我的ec2服务器,它连接像20秒,然后断开连接,然后再次连接等… 给我在节点控制台上的错误 warn – websocket connection invalid info – transport end 服务器 app = express() server = http.createServer(app) io = require('socket.io').listen(server) 客户 socket = io.connect() 我知道问题不在我的代码中,因为我完全testing了本地主机上的Web应用程序,所以唯一的问题是这个代码在哪里运行,这是我的EC2实例?