Articles of socket.io 1.0

Socket.IO客户端如何连接?

我在这里的第二个例子: https : //github.com/socketio/socket.io-client 并尝试连接到使用websockets的网站,在节点中使用socket.io-client.js。 我的代码如下: var socket = require('socket.io-client')('ws://ws.website.com/socket.io/?EIO=3&transport=websocket'); socket.on('connect', function() { console.log("Successfully connected!"); }); 不幸的是,没有任何logging。 我也试过: var socket = require('socket.io-client')('http://website.com/'); socket.on('connect', function() { console.log("Successfully connected!"); }); 但没有。 请告诉我我做错了什么。 谢谢!

io()和io.connect()之间的区别使用socket.io

我想知道之间有什么区别 var socket = io(); 和 var socket = io.connect(); 在我的脚本中使用socket.io(客户端) 谢谢!

Socket.io错误发送消息到套接字

有一个代码行: io.sockets.socket(socketid).emit('counter', { all : data.all, dialog : data.dialog }); 它给了我例外: TypeError: Object #<Namespace> has no method 'socket' 我的连接事件: io.sockets.on('connection', function(socket) {}); 为什么对象套接字是不是? 完整代码: var socketio = require('socket.io'); var server = http.createServer(app).listen(8181, function(){ console.log("Express server listening on port "+ app.get('port') +" in "+ app.get('env') +" mode."); }); var io = socketio.listen(server); io.on('connection', function(socket) {});

我可以在socket.io的命名空间中使用房间吗?

我想知道是否可以在socket.io中使用多个房间。 据我所知,你可以使用命名空间或房间。 我的目的是通过只有一个node.js-socket.io-server的websockets,让我的应用程序有多个独特的实例与这个独特的应用程序交谈。 有了这个应用程序,就有要求彼此交谈。 在一个房间或全球范围内。 没有必要与另一个命名空间交谈。 提前致谢, 丹尼尔

如何处理io.use中间件来捕获客户端上的错误?

我需要检查我的套接字连接的身份validation,如果失败,请删除一个。 我的服务器和客户端代码如下所示: // server.js var http = require('http'); var sio = require('socket.io'); var app = require('express')(); var server = require('http').createServer(app).listen(3000, function () { console.log('Server listening on 3000 port'); }); var io = sio.listen(server); io.use(function (socket, next) { return next(new Error('Not Authenticated')); }); // client.js var socket = io.connect(window.location.origin); socket.on('connect', function () { console.log('socket connected') }); […]

socket.io JavaScript客户端重新启动服务器后无法重新连接

我使用“socket.io”:“1.4.5”,“socket.io-redis”:“1.0.0”。 使用socket-io-client的javascript客户端似乎很高兴地连接到服务器,除了服务器重新启动时。 连接尝试失败,触发'{“消息”:“xhr轮询错误”,“types”:“TransportError”,“描述”:0“}'消息”connect_error“事件如果我重新启动浏览器连接工作正常。我也注意到,如果我在事件处理程序中为“connect_error”设置了一个断点并等待几秒钟,那么连接尝试最终会成功。我错过了客户端代码中的一个configuration设置? var socketConnectParams = {'max reconnection attempts': 150}; socketConnectParams['reconnection'] = true; socketConnectParams['reconnectionDelay'] = 5000; socketConnectParams['reconnectionDelayMax'] = 15000; var socket = io('http://localhost:8888', socketConnectParams); socket.on('connect', function () { }); socket.on('connect_error', function(error) { dLog("connection error event received." + JSON.stringify(error)); });

Socket.io 1.3.7忽略选项

我有一个node.js脚本,当客户端连接读取和转储Mongo数据库的内容。 我刚刚从socket.io 0.9升级,缺乏示例和糟糕的文档让我有些困惑。 我曾经可以使用io.set('transports', ['xhr-polling'])来设置选项io.set('transports', ['xhr-polling'])但是这个已经被删除,从我可以制定新的方式来定义选项是这样的 { allowUpgrades: false, transports: [ 'polling' ], pingTimeout: 5000, pingInterval: 2500 }; 但是…他们似乎被忽略了。 这里是完整的node.js脚本; var io = require('socket.io')(8002, options); cp = require('child_process'); var tail = cp.spawn('test-scripts/k-test.rb'); var options = { allowUpgrades: false, transports: [ 'polling' ], pingTimeout: 5000, pingInterval: 2500 }; //On connection do the code below// io.on('connection', function […]

如何closuressocket.io 1.0中的服务器?

有一些这样的,但他们是以前版本的图书馆。 看来代码已经改变了。 我正在实例化一个套接字,如下所示: this.socketLib || (this.socketLib = require('socket.io')); this.socket = this.socketLib.listen(this.port); 在对象的其他地方,我有一个closuresfunction。 我试过以下closures套接字: this.socket.close() # TypeError: Object #<Server> has no method 'close' this.socket.server.close() # TypeError: Object #<Server> has no method 'close' this.socket.server.disconnect() # TypeError: Cannot call method 'disconnect' of undefined this.socket.disconnect() # TypeError: Object #<Server> has no method 'disconnect' this.socket.io.engine.close() # TypeError: Cannot read property […]

socket.io-redis尾随字节

我正在使用socket.io-emitter将一个事件广播到一个带for循环的通道: 在文件中,我有: var io = require('socket.io-emitter')({ host: 'localhost', port: 6379 }); module.exports = { exampleFunction: function(req, res, next) { var channels = req.param('channels'), data = req.param('data'); for (var i=0; i<channels.length; i++) { io.to(channels[i]).emit('example event', data) } } } 在app.js ,我有socket.io-redis : io.adapter(socketio_redis({ host: 'localhost', port: 6379, pubClient: redis.createClient(6379, '127.0.0.1'), subClient: redis.createClient(6379, '127.0.0.1') })) 当我尝试运行exampleFunction ,在控制台中出现以下未捕获的错误: […]

当出现Javascript错误时,Socket.IO会断开并阻止debugging

所以我不知道这是在socket.io 1.1.0新的东西,但每当我有一个JavaScript错误,在我的代码中的任何地方(即使它不涉及socket.io在所有),socket.io是断开连接(它调用断开连接的事件,还有一个TransportError错误的错误事件),然后…什么也没有显示在Firefox的控制台,也没有铬控制台,没有debugging信息,没有,也没有帮助我find错误… 有没有办法阻止socket.io做到这一点,或者是与websockets或什么事情?