Tag: socket.io

通过3G连接的WebSockets

我一直在玩Socket.io,node.js和WebSockets,所有这些我都可以在无线连接上正常工作。 但是,当我通过3G连接(例如,在我的iPhone上)testing一个支持WebSocket的应用程序时,似乎回落到长轮询是唯一可行的解​​决scheme。 使用Socket.io时,连接失败,返回长轮询之前“WebSocket连接无效或Origin not verified”。 我不知道WebSockets是否打算在3G上工作 – 有没有人成功让他们这样工作? 我尝试了许多不同的方法,所有这些都似乎失败了,这让我觉得我正在尝试不可能的事情。

通过c#与socket.io服务器通信

有没有ac#客户端遵循socket.io协议? 我有一个socket.io服务器通过网站与socket.io javascript客户端进行通信,但我也需要连接ac#片段,它可以发送和接收消息。 有没有一个干净的方式来做到这一点,或者我将不得不写我自己的客户端。

如何在socket.io 1.0中获取房间的客户列表

我可以用socket.io 0.9中的这段代码得到房间的客户列表。 io.sockets.clients(roomName) 我怎么能在socket.io 1.0中做到这一点?

如何使用express和socket.io使用护照?

我目前正在尝试为我的node.js应用程序设置一个基本的身份validation系统。 现在我使用Express(3.0.0rc5),护照(0.1.12)和socket.io(0.9.10)作为会话数据的Mongoose Store。 我也一直在玩everyauth但我不喜欢与诺言合作。 现在的情况: 通过护照(脸书策略)身份validation是成功的,在redirect后,客户端上设置session.sid cookie,我能看到我的数据库中的会话文档。 我可以通过socket.handshake.headers.cookie访问socket.io的会话cookie。 如果我正确理解了护照概念,那么在成功authentication passport.serializeUser后,我就可以将信息添加到会话中。 在我的情况下,最重要的信息是电子邮件,所以我按照以下方式设置序列化程序: passport.serializeUser(function(user, done) { done(null, user.email); }); 现在我处于必须只使用我的socket.io事件中的cookie信息从会话中提取电子邮件地址的地步。 var connect = require('connect'), parseSignedCookie = connect.utils.parseSignedCookie, cookie = require('express/node_modules/cookie'); io.on('connection', function(socket) { if(socket.handshake.headers.cookie) { var cookie = cookie.parse(socket.handshake.headers.cookie); var sessionID = parseSignedCookie(cookie['connect.sid'], 'secret'); } }); passport.deserializeUser(function(id, done) { // so, what is supposed to be done […]

使用socket.io发送消息到特定的客户端,并清空消息队列

我用socket.io疯了! 文档是如此糟糕,这是不正确的。 我想通过socket.io发送反馈给特定的客户端 我的服务器端看起来像这样: app.get('/upload', requiresLogin, function(request, response) { response.render('upload/index.jade'); io.sockets.on('connection', function (socket) { console.log('SOCKET ID ' + socket.id); io.sockets.socket(socket.id).emit('new', 'hello'); }); }); 客户端看起来像这样: $(document).ready(function() { var socket = io.connect('http://localhost:80/socket.io/socket.io.js'); socket.on('new', function (data) { console.log(socket.id); console.log(data); //$('#state').html(data.status); }); }); 但客户端什么也不做。 我尝试了几乎所有的东西。 有人能告诉我我做错了什么,请! 🙁

使用Socket.io连接客户端到服务器

我是相对较新的node.js和它的插件,所以这可能是一个初学者的问题。 我试图在Web服务器上获得一个简单的HTML页面连接到不同的服务器与websocket.io运行node.js。 我的代码如下所示: 客户 <script src="socket.io/socket.io.js"></script> <script> // Create SocketIO instance, connect var socket = new io.Socket(); socket.connect('http://127.0.0.1:8080'); // Add a connect listener socket.on('connect',function() { console.log('Client has connected to the server!'); }); // Add a connect listener socket.on('message',function(data) { console.log('Received a message from the server!',data); }); // Add a disconnect listener socket.on('disconnect',function() { console.log('The client […]

使用socketio心跳的优点/缺点

Socket.io允许您使用检测信号“检查Socket.IO连接的健康状况”。 什么是心跳,为什么要或不应该使用它们?

Socket.io:WebSocket可以处理多less个并发连接?

我想知道,如果你有任何数据并发连接到websockets? 我在Node.js服务器上使用Socket.io。 有多less客户端可以连接到套接字并接收数据,而无需closures服务器? 1000? 1000.0000? 谢谢!

来自Socket.io的s3_pkt.c中的HTTPS错误“数据长度太长”

我们试图通过HTTPS / WSS让Socket.io flashsockets在Internet Explorer 9中工作。 闪存卡通过HTTP工作,但HTTPS给我们带来了问题。 我们使用socket.io版本0.8.7和socket.io-client版本0.9.1-1。 我们通过端口443上的SSL运行我们的websocket服务器。我们已经在正确的位置指定了我们的WebsocketMainInsecure.swf文件的位置(这些是跨域ws请求),并且我们正在swfobject中embedded文件通过HTTPS。 我们在我们的EC2实例的安全组中打开了端口843,跨源策略文件成功通过HTTP呈现。 它似乎不通过HTTPS呈现(Chrome会引发SSL连接错误)。 我们已经尝试了两个版本的WebsocketMainInsecure.swf文件。 首先是由Socket.io提供的文件,它由WebsocketMainInsecure.as构build,不包含行 Security.allowInsecureDomain("*"); 这会引发错误SCRIPT16389: Unspecified error. 在WebSocket.__flash.setCallerUrl(location.href)一行。 我们认为这是因为SWF文件不允许HTTPS请求,所以我们用在这个repo上find的文件replace了WebSocketMainInsecure.swf文件: https : //github.com/gimite/web-socket-js,因为它包括 Security.allowInsecureDomain("*"); 在actionscript代码行。 当我们使用这个时,我们看到flashsocket连接保持断开连接并在无限循环中重新连接。 我们将错误追踪到Transport原型上的onSocketError函数的socket.io库中的transport.js文件。 它引发错误: [Error: 139662382290912:error:1408F092:SSL routines:SSL3_GET_RECORD:data length too long:s3_pkt.c:503:] 我们甚至试着将socket.io和socket.io-client更新到版本0.9.6,我们仍然得到了Access is denied错误。 这个错误非常难以debugging,现在我们不知道如何让FlashSocket工作。 我们想知道是否可能需要使用旧版本的socket.io,或者我们的策略文件服务器不接受HTTPS请求,或者甚至可能来自Web的WebSocketMainInsecure.swf文件, socket-js github repo是根据socket.io-client的期望build立的。

是否可以在AWS Lambda中使用Socket.io?

是否可以在AWS Lambda中构build一个创buildWebSocket并将数据发送到订阅应用程序的函数? 像这样的东西: John在手机中打开了应用程序SuperPhotoApp,但决定使用桌面浏览器将照片上传到SuperPhotoApp服务(S3 Bucket),此事件执行一个Lambda函数,创build一个socket.io服务器并将更新推送给所有订户,他的手机已经打开了应用程序,所以应用程序自动更新与新的照片。 这可以通过推送通知或Amazon SNS来完成,但是如果我需要实时行为,例如需要更新angular色位置的在线游戏,该怎么办? 如果Lambda无法实现这一点,有没有解决scheme可以使用桌面浏览器更新我打开的应用程序? 亚马逊EC2是唯一的select? 我读过它有缩放问题,这就是为什么我在评论Lambda。