Tag: socket.io

适用于使用代理的客户端的socket.io flash(和其他)回退的正确设置

萨拉姆(手段你好):) 我在我的node.js应用程序中有以下基本设置。 但对于使用代理连接的客户端或防火墙后面的客户端不起作用。 我想知道我应该添加什么来使socket.io回退按预期工作: 服务器端: var io = require('socket.io').listen(3000, { log: 3, flashPolicyServer: true, transports: ['htmlfile', 'xhr-polling', 'jsonp-polling', 'flashsocket'] }); io.sockets.on('connection', function(){ // my event handlers }); 客户端: WEB_SOCKET_SWF_LOCATION = "oath/to/my/copy/of/WebSocketMain.swf"; var socket = io.connect('http://localhost:3000'); // my event handlers

reto()在Gottox-socket.io-java-client上的Prolems

我在github上使用Gottox-socket.io-java-client。 这是如此酷的图书馆曾经使用过。 如此轻松和如此强大。 我正在与socket.io-java客户端开发Android应用程序和…..我发现了一些问题。 我正在使用最新版本的socket.io-java-client和socket.io服务器版本是0.9.16与node0.11.9-pre 在调用mSocket.disconnect()之后,mSocket.reconnect()方法不起作用。 所以我试图连接()重新连接,而不是重新连接(),但很快我面临exception“你可以连接你的SocketIO实例只有一次,而不是使用新的实例” 是的,我知道那个方法…那意味着 mSocket = new SocketIO ( BASE_SOCKETIO_URL ); 但是运行这个后在ANDROID中存在严重的问题,垃圾收集器运行速度很快,而且设备上的电池也运行得很快。 我认为SocketIO类实例有大量的内存,所以这会导致垃圾收集。 有没有解决办法? 或者是否有任何方法来触发onDisconnect()后发射reconnect()? 请帮忙。 谢谢你的阅读。

与node.js和socket.io聊天的应用程序

我正在尝试使用node.js和socket.io创build一个聊天应用程序 这是我的地址脚本的app.js var express = require('express'), app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server); server.listen(3000); app.get('/', function(req, res){ res.sendfile(__dirname + '/game.php'); }); io.sockets.on('connection', function(socket){ socket.on('send message', function(data){ io.sockets.emit('new message', data); }); }); 与.html一切运作良好 但是当我改变它.php而不是加载页面开始下载 在“localhost:3000” 我应该改变什么才能使其工作? 如果你需要game.php代码,请问我发布它。 更新:编辑这部分 app.get('/', function(req, res) { res.setHeader('Content-Type', 'text/html'); res.sendfile(__dirname + '/game.php'); }); 现在它给了我 ReferenceError: text is not defined […]

socket.io查询string不通过命名空间授权

我正在socket.io中确保我的套接字的命名空间,我试图授权与我将通过一个身份证的连接。 连接如下所示: io.connect('/chat?id=abc123')连接到我的聊天名称空间。 我的授权看起来像 io.of('/chat).authorization(function(handshakeData, callback) { console.dir(handshakeData); chatdb.VerifyUserInfo(handshakeData.query.id, function(err, records) { if(err || records.length !== 1) callback(err, false); else callback(null, true) } 基本上,当console.dir(handshakeData)运行时,我得到以下输出查询和url,我不是100%肯定为什么我的数据被省略 query: { t: '1387341178191' }, url: '/socket.io/1/?t=1387341178191', 我的理解是,t是由socket.io默认发送的时间戳,但是我的身份证去了哪里? 我觉得我正在做的一切,但我不知道怎么了。 任何帮助将不胜感激。

一起使用meteor和socket.io

我是Meteor新手。 我正在开发一个realtime multiplayer game 。 我想实现一切有关游戏,但游戏引擎状态与Meteor 。 例如聊天消息,可用的游戏室,邀请函,在线成员等。我想用Meteor来实现这些function。 但是我想用socket.io手动实现游戏状态。 因为游戏是实时的,每45毫秒(在我的体系结构中),游戏状态将stream向客户端,我认为meteor不是为了这个而不是灵活的。 于是我开发了多人游戏的概念,并将客户端和服务器与socket.io同步。 这是没有问题的。 我想用Meteor和socket.io两者并用。 我试图实现它。 我在我的meteor应用.meteor/local/build/programs/server/app下安装了socket.io ,内部是.meteor/local/build/programs/server/app app。 在那之后,我在server side Meteor startup包括require声明; Meteor.startup(function () { var require = Npm.require; var sio = require('socket.io') var socketIO = sio.listen(this.http) socketIO.configure(function () { socketIO.set('log level', 0); socketIO.set('authorization', function (handshakeData, callback) { callback(null, true); // error first callback style }); […]

socket.io授权引发“握手错误”

在使用session.socket.io模块挣扎之后,我决定通过为我的socket.io设置授权来进行套接字会话连接。 这是我的服务器: /** * Module dependencies. */ var express = require('express'); var routes = require('./routes'); var http = require('http'); var path = require('path'); var io = require('socket.io'); var redis = require('redis'); var crypto = require('crypto'); var redisClient = redis.createClient(); var app = express(); // Session Tracking var cookieParser = express.cookieParser('secret'); var RadisStore = require('connect-redis')(express); var […]

在套接字重新连接上设置集合:会话时设置TTL索引时出错

我有一个与mongoose和socket.io节点的应用程序。 应用程序工作正常,但如果以某种方式套接字断开连接,而试图重新连接下面的错误被抛出。 如果我永远运行这个下,应用程序将重新启动,但一段时间后,它会抛出相同的错误,将继续在循环中。 node_modules\connect-mongo\lib\connect-mongo.js:161 throw new Error('Error setting TTL index on collection : ' + s ^ Error: Error setting TTL index on collection : sessions 我尝试了其他的解决scheme,但没有运气。 这里是一些configuration。 的package.json "dependencies": { "express": "3.1.1", "passport": "0.1.16", "passport-local": "0.1.6", "mongoose": "latest", "connect-mongo": "latest", "async": "latest", "express-validator": "~0.3.2", "express-mailer": "~0.2.0", "bcrypt": "~0.7.5", "socket.io": "latest", "nodemailer": "latest", "underscore": "latest" […]

通过Socket.io HTML5video/audio到Nodejs,但扭曲 – FFMPEG

我正在写这个非常简单的“skype克隆”。 我尝试了各种其他语言,python和分层Node.js与meteor,WebRTC,但Node.js + socket.io似乎工作最好,最干净,但我已经达到了路障,我无法得到这一切正常工作。 我有两个问题,1,我想我从HTML5 getUserMedia发送真实的数据,但我可能不会,我不知道如何testing或找出。 我认为使用“video.src = window.URL.createObjectURL(stream);” 使Blobstream成为一个实际的数据stream…但我不知道。 这是我的Broadcast.html这是一个非常简单的getUserMedia抢相机和麦克风…然后我连接到套接字,点击广播button,发射发射'join',并通过'webcamstream'的数据发送。 <video autoplay height="280"></video> <button class="recordbutton" onclick="startBroadcasting();">Broadcast</button> <script language="javascript" type="text/javascript"> var socket = io.connect('http://video.domain.com:3031'); socket.on('connect', function() { $('#conversation').append('Connected <br />'); }); function onVideoFail(e) { console.log('webcam fail!', e); }; function hasGetUserMedia() { return !!(navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia); } if (hasGetUserMedia()) { alert('It is […]

消息在Socket.io中多次广播

我对node.js和socket.io比较新。 在构build示例聊天室应用程序时,遇到了一种情况,当我刷新浏览器n次,然后发送消息时,消息会被n次广播给所有客户端。 我如何让它不会多次播放? 这里是服务器端和客户端代码。 qaserver.js var express = require('express') , app = express() , http = require('http') , server = http.createServer(app) , io = require('socket.io').listen(server, { log : false }); server.listen(4040); var redis = require('redis'); var r43 = redis.createClient('6379', '127.0.0.1'); r43.select("43"); // Set the view directory to /views app.set("views", __dirname + "/views"); app.use(express.static(__dirname + '/public')); […]

节点JS + Socket.io应用程序在一段时间后停止接收事件

我正在一个节点的JS + socket.io应用程序。 整个应用程序工作正常, 但大约5分钟后,服务器停止接收客户端触发的事件。 🙁 当事件没有被触发时,我可以看到服务器正在成功接收心跳。 debug – got heartbeat packet debug – cleared heartbeat timeout for client 4cKMC4Iqje-7dDfibJZm debug – set heartbeat interval for client 4cKMC4Iqje-7dDfibJZm debug – emitting heartbeat for client 4cKMC4Iqje-7dDfibJZm debug – websocket writing 2:: debug – set heartbeat timeout for client 4cKMC4Iqje-7dDfibJZm 我也确定客户端正在发送消息,因为我可以看到在Chrome开发人员工具中发送的数据。 以下是正在发送的示例数据 5:::{"name":"ev_SendChatMessage","args":[{"chatMsg":"dgdfsgfs","aID":"10010001835364"}]} 另外,我在服务器机器上检查了TCP Dump的结果,它正在成功接收数据包。 节点版本是v0.10.21 socket.io版本是0.9.16 […]