Articles of websocket

Socket.io用于实时应用程序

所以我有几个月前build立的另一个项目。 它目前使用jQuery和Ajax,每30秒调用一次php脚本。 php脚本查询mysql并返回结果显示。 在这个应用程序中,这个人有能力添加/编辑/从数据库中删除logging,当他们从数据库的结果列表需要更新他们看到的列表。 到目前为止,这似乎是工作,但是往下看,数据库将变得更大,并且需要实时更多,这意味着不仅每30秒刷新一次,而且尽可能瞬间更新。 socket.io会是这个答案吗? 我会简单地使用socket.io与nodejs来创build一个服务器,并发出事件来查询我的分贝,并返回结果显示? 那么在客户端就有一个像每秒一样调用服务器套接字脚本的函数? 这是否是使用socket.io的正确途径? 如果这样的话,如果我在服务器资源方面每秒都运行一次,那么这个过程会有一个问题吗?

通过WebSocket连接发送HTML是不好的做法

我正在使用MongoDB数据库在Node.js中开发一个小应用程序,前面有nginx来处理静态文件和最初的index.html。 当我访问我的index.html所有javascript / css / img文件被加载,并且一个websocket连接到node.js服务器。 最初我的index.html是空的,它需要填写正确的模板文件。 我能做的一件事就是做一个正常的Ajax请求。 $ .get('myfile.html')并将其附加到我的内容。 websocket只处理数据库数据。 现在我已经有了一个开放的websocket连接服务器,为什么不把这个.html模板和数据库中的数据一起传输,然后把它合并到客户端。 模板文件只是很less的HTML片段,为什么浪费一个HTTP请求,对吗? 请注意,这个应用程序将只有有select的人有完整的HTML5浏览器支持。 不需要回退的情况。

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更大的开销。 你怎么看,有没有我没有想到的很大的缺点?