Articles of websocket

socket.io客户端持久重试到不可访问的主机

我试图从我的socket.io客户端(运行在Node.js)到远程websocket持久连接。 我无法控制远程套接字,有时可能完全失效。 我想尝试重新连接(),每当一个错误或断开连接发生。 在下面的例子中,我试图testing远程主机拒绝连接的情况。 在这种情况下,我想在1秒后尝试重新连接。 它会再次调用,然后退出。 代码如下: var events = require('events'), util = require('util'), io = require('socket.io-client'), url = "ws://localhost:12345", // intentionally an unreachable URL socketOptions = { "transports" : [ "websocket" ], "try multiple transports" : false, "reconnect" : false, "connect timeout" : 5000 }; // The goal is to have this socket attempt […]

如何使用socket.io设置和读取cookie?

我在我的node.js应用程序中使用socket.io,我试图设置一个简单的cookie,并在稍后回读cookie的值。 我怎么用socket.io做到这一点? 它是否支持本地或我需要编写客户端function来处理cookie,然后创buildsocket.io事件来使用它们?

Nodejs websocket服务器,http触发器

我有一个http / websocket nodejs服务器。 我想使用访问url的动作来触发websocket发送到不同的套接字客户端。 var WebSocketServer = require('ws').Server var wss = new WebSocketServer({port: 8081}); var http = require("http"); var sys = require("sys"); var server = http.createServer(function(request,response){ response.writeHeader(200, {"Content-Type": "text/plain"}); response.write("Hello"); if (request.url == "/"){ sys.puts("hit site") wss.on('connection', function(ws){ sys.puts("sent msg"); ws.send("photo plox"); }); } response.end(); }).listen(8000); 我的websocket客户端没有收到消息,因为浏览器击中了url。 如果我没有连接客户端多次访问该站点,然后再连接客户端,则每次访问都会发送一条消息。 我怎么能使用浏览器的url访问来触发一个websocket发送?

WebSocket安全的本地主机连接

我已经构build了一个简单的Node.js WebSocket聊天服务器 。 我可以在terminal选项卡上的localhost上运行它。 在另一个terminal标签中,我可以用ws://连接到wscat 。 如何使用wss://在localhost上连接到它?

如何使用Socket.io在Node.js中添加房间?

我一直在跟进很多文章,学习使用Node.js和Socket.io进行聊天应用程序。 一切都很清晰,我可以制作一个应用程序,将消息从客户端传输到服务器,然后发送给所有人,但只有一件事情没有解决,无法弄清楚。 如何将房间添加到io.sockets.manager.room ? 什么是添加到sockets.manager房间的代码? 我发现的最简单和最彻底的文章是http://udidu.blogspot.com/2012/11/chat-evolution-nodejs-and-socketio.html但经过漫长的斗争,我仍然无法find作者添加新房间到服务器。

nodejs – 如何在ws(einaros)中获取cookie

在socketio中,我可以使用socket.handshake.headers.cookie轻松获取cookie。 我怎么能在ws做同样的事情?

为什么我的websocket在几分钟后closures?

我在服务器端使用ws和node.js,在客户端使用常规的WebSocket API。 打开连接和消息几次来回工作正常。 但是套接字在一两分钟后总是closures。 难道他们不应该坚持? 难道我做错了什么? 我的服务器是托pipe在heroku上的node.js。 我只是使用foreman start (heroku工具在本地运行服务器)再次本地testing,并且套接字根本不会意外closures,所以也许这是对heroku的错误configuration。 无论如何,这里有一个相关的代码示例,为简洁起见省略了一些function。 我在OSX Yosemite的Chrome上testing了这个应用程序,但是在运行在生产环境中的Windows 7上,在Chrome上看到了相同的行为。 服务器: // Client <-> Host Protocol functions. Move to a different file so that they can be shared. var C2H_SIGNAL_TYPE_REGISTER = "register"; var H2C_SIGNAL_WELCOME = "welcome"; var H2C_SIGNAL_TYPE_ERROR = "error"; var H2C_SIGNAL_TYPE_PEER_ADDED = "peer_joined"; var H2C_SIGNAL_TYPE_PEER_LEFT = "peer_left"; // Update channel […]

是否有可能在不使用socket.io的情况下在节点中创build聊天应用程序

我想在nodejs中创build一个小聊天应用程序。 但是,我发现实现这个function的每一个节点都与socket.io一起使用 因为节点也是在想到推送通知的情况下创build的 如果可能,如何纯粹在节点中创build聊天应用程序? 谢谢!

Websocket base64,二进制types

我很困惑。 我想了解Websockets是如何工作的,并在node.js和客户端build立一个服务器。 我无法理解的是,Websocket如何发送数据。 在从客户端(浏览器)发送之前是否将数据base64编码? 'binarytype'如何工作? 只为接收? 我也必须在服务器上实现这些吗? 我需要在服务器端的“二进制types”选项? 我什么时候需要blob和arraybuffer? 取决于小的和大的数据? 什么是如果得到video和audio文件? 我看了一下如何在网上发送图片,而且我常常find解决scheme,图片是base64编码,然后发送。 但是,如果浏览器中的Websocket API已经将二进制文件编码为base64,我不必这样做。 对不起,我很困惑,希望有人能帮助我

如何从不同的服务器连接到websocket?

我有服务器 “windows 7专业版”,我安装了node.js并运行它使用此命令node ws_server.js 按照这里的说明 从运行Apache 2.4 / php 5.6.13的服务器B “Windows Server 2008 R2”中,我想连接到服务器A上的ws_server 。 在**服务器B *我有一个脚本叫websocket.php与下面的代码 <script> $(function() { var WebSocketClient = require('websocket').client; var client = new WebSocketClient(); client.on('connectFailed', function(error) { console.log('Connect Error: ' + error.toString()); }); client.on('connect', function(connection) { console.log('WebSocket Client Connected'); connection.on('error', function(error) { console.log("Connection Error: " + error.toString()); }); connection.on('close', function() […]