Tag: socket.io

socket.io – 序列化套接字

是否有任何开箱即可以序列化和反序列化套接字? 我看了全部,似乎无法find关于这个问题的任何东西。 如果方便(de)序列化不存在,有没有办法dynamic地使用它们的属性来构build套接字,所以我可以手动执行它? 谢谢!

通过套接字streamvideo到html5video标签

您好,我一直在试图stream通过一个socket.io套接字的webmvideo直接到html5video标签。 客户端和服务器代码如下所示: 服务器: (function() { var Alert, Channel, Receiver, Takeover, express, pathLib; pathLib = require("path"); fs = require("fs"); express = require("express"); module.exports = function(app, sockets) { router = express.Router(); router.get("/clearAlerts", function(req, res) { console.log("reached!"); return sockets.emit("alert-deleted"); }); router.get("/castVideo", function(req, res) { //move this to a better place console.log("reachedCastVideoss"); var readStream = fs.createReadStream(pathLib.join(__dirname + "/../../../public/elephants-dream.webm")); readStream.addListener('data', […]

如何使用SocketIO连接Android客户端与Node.js服务器?

我试图从Android客户端使用SocketIO与Node.js连接,但我正面临Logcat中的SocketTimeOutException。 mycode的: MainActivity.java package com.example.androidtestclient; import io.socket.IOAcknowledge; import io.socket.IOCallback; import io.socket.SocketIO; import io.socket.SocketIOException; import java.net.MalformedURLException; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); try { SocketIO socket = new SocketIO("http://10.42.0.32:3000/"); socket.connect(new IOCallback() { @Override public void onMessage(JSONObject json, IOAcknowledge […]

如何识别Socket.IO(通过socketio-auth)成功的身份validation?

我想借助Socket.IO和socketio-auth在Node.js服务器中实现Websocket身份validation。 我的testing平台是一个简单的聊天室,客户端需要向服务器发送密码才能获得join的权限。 我通过socketio-auth来做到这一点,如下所示: 客户端: socket.on('connect', function(){ socket.emit('authentication', {client: "client", password: "test"}); }); 服务器端: require('socketio-auth')(io, {authenticate: function(data, cb){ cb(null, data.password == 'test');} }) 这按预期工作。 因为它允许客户端join。 如果我发送了错误的密码,则连接被拒绝。 但是,我不知道如何从服务器收集数据,告诉客户端它没有权限连接。 我现在得到的是客户端控制台上的一个POST,说'400错误的请求'。 客户端如何检测到它被拒绝访问? 谢谢, 一月

socket.io 0.9发现错误

我正在使用Flash客户端和socket.io 0.9服务器构build一个手机游戏。 我的游戏很受欢迎,随时都有〜300个连接的客户端。 当服务器工作24小时时,突然它只在约10%的情况下才开始响应。 我debugging的Flash客户端和socket.io库尝试加载为HTTP这个url: http://host.com:123/socket.io/1/?time=14187588 … 通常情况下,它会收到状态码200,如下所示: Io70X_FFWJFdyCpfp_3w:40:60:websocket,htmlfile,xhr-polling,jsonp-polling,flashsocket 但是当服务器挂起时 – 在90%的请求中它接收到响应码0和没有数据,而另外10%的情况下接收到正确的数据并成功连接。 有任何想法吗?

Socket.io内存泄漏

这是我完整的node.js代码: var express = require('express'), http = require("http"), app = express(), server = http.createServer(app), sio = require('socket.io'), io = null; server.listen(3000, "localhost"); io = sio.listen(server); io.sockets.on('connection', function (socket) { socket.emit('access', "connected"); }); 当我检查node.exe进程(我在本地主机窗口)时,每次用户连接,内存使用增加,但每次用户断开,内存使用不会减less。 我的设置有问题吗?

通过多个页面保持socket.io中的variables

我对node.js和socket.io相当陌生,所以其中一些问题可能看起来很愚蠢。 据说,我一直在试图开发一个应用程序,可以在不同的页面之间存储用户名。 例如,我在一个页面上设置了我的用户名。 然后我redirect到另一个页面,但是我的用户名仍然是一个可以在套接字连接中访问的variables。 这是我的基本服务器设置: var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/set', function(req, res){ res.sendfile('set.html'); }); app.get('/get', function(req, res){ res.sendfile('get.html'); }); io.on('connection', function(socket){ }); http.listen(3000, function(){ console.log('listening on *:3000'); }); 我的问题是: 1.)有可能知道该sockets目前在哪个页面上? 如果是这样,怎么样? 2.)如何与io.on(…)中的信息交互? 我曾尝试使用会话中间件socket.io和expression,但我似乎无法得到任何工作。 我很确定使用会话是最好的方法,但我不知道如何实现它们。 任何有关设置可通过不同页面访问的会话的build议也会很好。 谢谢!

如何testing构build在node.js和socket.io上的聊天应用程序的负载?

这里是一个简单的聊天应用程序与房间概念的链接,我指的是学习如何创buildsocket.io应用程序 – https://github.com/mcantelon/chatrooms 。 我需要testing这个应用程序为socket.io带来多less负载。 我如何testing成功连接了多less个连接? 有没有任何工具或方法来实现这一目标?

Phantomjs 2.0 SocketIO每个连接需要1000毫秒

我使用PhantomJS 2.0并试图在PhantomJS和NodeJS之间testingsocket.io。 它的工作原理,但每个连接需要大量的时间(约1000毫秒)。 我曾在Chrome上试过,它只需要1-2ms。 看来PhantomJS的page.evaluate中的socket.io不是socket.io! 这是我使用CasperJS的testing代码: var casper = require('casper').create({ clientScripts:["socket.io.js"] }); casper.start('http://localhost:8080'); casper.page.onConsoleMessage = function(msg) { console.log(msg); }; }; casper.then(function(){ this.evaluate(function(){ var socket = io.connect('http://localhost:8080'); socket.on('news', function (data) { socket.emit('senddata', { time: new Date().getTime() }); }); }) }) casper.wait(5000); casper.run(); 在NodeJS服务器上,我使用下面的代码: var app = require('http').createServer(handler) var io = require('socket.io')(app); var fs = require('fs'); app.listen(8080); […]

Socket.io + SailsJS:聊天应用程序 – 如何检查客户端是否closures,并使用户脱机?

我在node-web kit和SailJs中创build了一个多用户聊天应用程序,并试图实现用户的login状态。 用户在打开应用程序时联机。 用户下线的情况是: 用户点击注销button 用户closures应用程序窗口。 用户closures他/她的系统。 用户closures系统时,注销状态不起作用。 这是我写的代码的一部分: UserSocket.find({ companyId: user.companyId }, function (err, sockets) { if (!err && sockets != undefined && sockets.length > 0) { socketList = _.pluck(sockets, "socketId"); sails.sockets.emit(socketList, 'userOffline', { previous: user }); } }); 请帮我解决这个问题。 提前致谢。