Articles of websocket

我应该使用哪个node.js套接字引擎?

我正在开始一个项目,build立跨网站和Android应用程序的实时聊天应用程序。 由于我想阻止对各种API调用的连续轮询,我想使用websockets(我没有经验),在这个过程中,我认为学习node.js是个好主意。 所以我需要开始使用node.js的websockets lib。 为此我看到有相当多的选项列表。 我读到最多的东西是socket.io。 围绕着,我也读了一下,socket.io v0.9很麻烦,而且我看到多个引用关于engine.io是来自socket.io版本1.0的socket.io的新后端,据推测它是“即将到来的”。 所有这些消息都是从2012年开始的( 例如这个 ),当我看看socket.io网站时 ,我发现他们仍然是v0.9,这让我想起了几件事情: socket.io仍在积极开发中? 是socket.io一个可行的select,还是我需要驻留到另一个图书馆? 哪一个你会推荐轻松启动,或者现在通过使用net.Socket来实现node.js(例如使用net.Socket )? 所有的提示,欢迎!

build立一个完整的站点只使用websockets(通过socket.io和node.js,没有Ajax)?

这可能吗? 有没有人试过? 使用websockets意味着没有被交换的HTTP头(就像在Ajax请求中一样),所以页面显示的速度肯定会提高,但是即使在没有任何事情发生的情况下,sockets仍然与服务器保持连接,这是不利的用户数量增加? 在客户端和服务器之间存在连接的情况下,服务器是否仍然可以处理连接在同一端口上的其他客户端?

socket.io正式客户端连接问题?

我正在使用iOS 8和Swift。 我想使用官方socket.io客户端,但由于某种原因,它不会尝试连接。 我遵循这里给出的例子: https : //github.com/socketio/socket.io-client-swift let socket = SocketIOClient(socketURL: "\(CurrentConfiguration.serverURL)") socket.reconnects = true socket.reconnectWait = 10 socket.nsp = "/messagelist" // Connect socket.connect() socket.onAny {println("got event: \($0.event) with items \($0.items)")} socket.on("connect") {data, ack in println("socket connected") } socket.on("error") {data in println("socket ERROR") println(data) } 任何人都可以确认吗? 这是一个版本问题,或者可能涉及到Swift 1.2? 在服务器端,我甚至不能识别连接尝试。 variablesserverURL和我以前一样

WebSockets vs XHR的大量数据

我在NodeJS上运行SocketIO,我并不关心广泛的浏览器支持,因为它是我的宠物项目,我希望利用新技术的所有function来简化开发。 我关心的是如何从服务器向客户端发送大量的JSON数据。 那么,这些数量并不像video或图像二进制数据那么大,我认为每个请求不会超过几百KB。 我看到的两个场景是: 通过WebSockets从服务器发送一个通知给客户端,一些数据应该被获取。 然后客户端代码运行一个普通的XHR请求到服务器,并通过XHR获取一些数据。 通过WebSockets从服务器发送整个数据集到客户端。 在这种情况下,我不需要运行任何额外的请求 – 我只是通过WebSockets获取所有的数据。 我看到了Meteor.js的第一个例子,所以我想知道它的原因。 请分享您的意见。

PhoneGap应用程序中使用Node.js / Socket.IO服务器和客户端的Android版WebSockets

我正在PhoneGap中创build一个Android应用程序。 我想要做的是让应用程序通过WebSockets与我的Node.js服务器通话。 我的Node.js服务器使用Socket.IO,当我打开应用程序时,它会自动返回到轮询状态,与桌面的Chrome应用程序相反,它很高兴地打开一个WebSocket并通过它进行通信。 我读过关于将实际的WebSocket API与Phonegap集成的博文。 问题是我不是手动重写'onConnect,onMessage'函数,而是Socket.IO为我做了这一切。 有什么方法可以将WebSocket集成到我的Android Phonegap应用程序中吗?

如何扩展Node.js WebSocket Redis服务器?

我正在为Acani写一个聊天服务器,而且我还有一些关于使用负载均衡器可伸缩性来扩展 node.js和websockets的问题。 究竟是什么意思来负载均衡Node.js? 这是否意味着将有n个独立版本的服务器应用程序运行,每个版本都在一个单独的服务器上运行 为了允许一个客户端向所有其他客户端广播消息,我存储了一组在服务器上打开的所有webSocketConnections 。 但是,如果我有我的服务器应用程序运行n个独立版本,每个在一个单独的服务器上,那么我将有n套不同的webSocketConnections ? 如果1和2的答案是肯定的,那么如何存储通用的webSocketConnections (跨所有服务器)? 我想我可以做的一个方法是使用Redis Pub / Sub,并且每个webSocketConnection订阅Redis上的一个频道。 但是,那Redis服务器不会成为瓶颈吗? 那么我将如何扩展Redis? 这对Redis的规模意味着什么? 这是否意味着我有不同的服务器上运行Redis独立版本? 这甚至可能吗? 我听说Redis没有扩展。 为什么有人会这么说呢。 那是什么意思? 如果这是真的,有没有更好的解决scheme发布/分发和/或存储所有广播的消息列表? 注意:如果你的答案是Acani永远不会规模化,那么即使地球上70亿人(和成长中的每一个人)都要每秒钟向地球上的每个人传播一个信息,那么请给出一个有效的解释。

如何将一个懒散的机器人扩展到1000个团队

为了实现一个懒散的机器人,我需要处理冗余的“实时消息API”。 这是一个基于WebSocket的API,它允许您实时接收Slack的事件并以用户身份发送消息。 更多信息: https : //api.slack.com/rtm 为了只为一个团队创build一个bot,我需要打开一个websocket连接并听取事件。 为另一个团队提供松散的机器人。 我需要打开一个新的websocket连接。 所以, 1队=> 1个websocket连接 2队=> 2个websocket连接 N个团队=> N个websocket连接 我应该做什么来扩展我的websocket连接为无尽的团队? 什么样的架构可以处理1000个websockets连接的自动调节?

在Socket.IO中,'心跳'是一个可以用来触发其他操作的事件吗?

这个确切的代码不起作用,但是,我希望是这样的: io.sockets.on('connection', function(socket) { socket.on('heartbeat', function() { // Do something here… }); }); 是这样的可能吗? 我的意思是,我知道我可以做一个不同的函数,使用setInterval触发每个15秒: io.sockets.on('connection', function(socket) { setInterval(function() { // Do something },15000); }); 但是由于心跳已经在这个时间间隔,所以为什么不使用它呢? 无论如何,任何洞察力将不胜感激。

NodeJS水平缩放

我一直是ruby / php web应用程序开发人员,我已经习惯了服务器实例水平扩展的想法来处理更多的请求。 水平缩放 – 表示位于负载均衡器后面的应用程序的单独实例,它们不共享任何内容,也不知道对方。 我的主要问题是,因为Node.js和它的重点evented-io允许运行一个node.js服务器来处理“数以千计的”同时请求的单个框 – 负载平衡/水平缩放用于扩展nodejs应用程序? 缩放一个节点应用限于垂直缩放(抛出更多的RAM /处理能力的问题)? 我的第二个问题与node.js水平缩放和websocket有关。 我已经看到了很多使用websocket的Node.js“聊天”教程。 (最喜欢的: http : //martinsikora.com/nodejs-and-websocket-simple-chat-tutorial ) 由于websockets在浏览器和服务器之间有效地保持了开放的通信线路,所以PHP / Ruby世界中典型的水平缩放体系结构会导致类似链接中解释的聊天应用程序断开 – 因为新的websocket连接请求将会分配给不同的进程/服务器,并且没有一个中央资源跟踪所有连接的客户端?

Socket.io替代

我提前道歉,这可能会被标记和封闭作为一个基于意见的线程,但这纯粹是一个事实调查的使命。 我对networking套接字的世界很陌生 ,我知道的唯一信誉良好的库是socket.io,并且该网站正在closures,因此我正在借此机会发现另一个库。 我正在构build一个MEAN应用程序,我希望能够在客户端和中央服务器之间进行通信,这些都是实时的,这就是socket.io会起作用的地方,但是还有其他的select我应该知道吗? (我的服务器是用Express 4编写的)