Tag: socket.io

NodeJS socket IO停止随机发射?

我正在运行Node 0.6.16,所有的模块都是最新的,至less根据npm(win7 x64)。 我可以注意到,即使我没有断开连接,但由于某种原因,一段时间后,我不能说,也许一个小时,浏览器没有收到任何数据。 FF比在Chrome上更频繁。 socket.on('disconnect', function (){console.log('disconnected')}); 这永远不会为特定的事件触发(我的意思是可能发生,但是然后我得到日志和socket.io汽车重新连接 – 在这种情况下,没有任何反应,它只是停止工作,这是最常见的事件)。 所以我不知道在哪里看。 NodeJS仍然logging心跳,但由于某种原因,连接没有通过。 我怀疑,在(任何?)浏览器的选项卡更改,一段时间后,由于窗口/选项卡不再有焦点,socket.io停止接收数据? 我可能是错的,这可能与焦点无关,但这是我的主要领导。 任何人有任何想法? 编辑 :客户端非常简单: socket = io.connect('http://xxx.xxx.xxx.xxx:8081', {secure:false, 'reconnect': true, 'reconnection delay': 500, 'max reconnection attempts': 10}); socket.on('connect', function(){console.log('connected')}); socket.on('message', function(data){//do something); socket.on('disconnect', function (){console.log('disconnected')}); 编辑2 :更新到最新版本的socket.io(1.2.1)和节点v0.10.35后,我仍然有同样的问题。 更令人惊讶的是,我在客户端添加了以下一段代码: function checkSocket(){ if(socket){ if(!socket.connected){ console.log('socket disconnected'); clearInterval(intv); } } } intv = setInterval(checkSocket, […]

Socket.io事件列表

有谁知道在Socket.io中内置了什么事件 ? 例如: connection , disconnect , join等

使用Socket.IO授权和握手

我想知道授权和Socket.IO握手的主要function是什么。 我已经在GitHub上阅读过他们的wiki和授权指南 ,但是我仍然不明白以下内容: 授权如何在Socket.io中工作? 什么是Socket.IO握手? 我可以添加任何东西到handshakeData对象? 我希望你能回答我的问题。 谢谢。

Nodejs / Express – 启动我的应用程序:express.createServer()已弃用

我下载了一个节点应用程序来testing和玩耍。 我search了一下,发现Express被发现有点过时了。 有人可以帮我修复实施的代码吗? 这是代码 /** * Module dependencies. */ // base dependencies for app var express = require('express') , routes = require('./routes') , DB = require('./accessDB').AccessDB , passport = require('passport') , mongoose = require('mongoose') , mongoStore = require('connect-mongodb'); var app = module.exports = express.createServer(); global.app = app; var DB = require('./accessDB'); var conn = 'mongodb://localhost/CrowdNotes'; […]

GET http:// localhost:3000 / socket.io / socket.io.js 404(Not Found)

我正在尝试将数据传输到浏览器。 然而,我正在努力将其连接到浏览器。 这是我的html: <ul class="tweets"></ul> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script src="/socket.io/socket.io.js"></script> <script> var socket = io.connect(); jQuery(function ($) { var tweetList = $('ul.tweets'); socket.on('tweet', function (data) { tweetList .prepend('<li>' + data.user + ': ' + data.text + '</li>'); }); }); </script> 这里是我的app.js的相关部分: var express = require('express') , twitter = require('ntwitter') , http = require('http') , path = […]

socket.io:断开事件不被触发

我做了一个简单的实时访客计数器。 你可以从这个仓库下载它。 会发生什么情况是,服务器上的断开连接事件(即使在浏览器closures后)从未被触发 server.js是: (function () { var app, count, express, io; express = require('express'); io = require('socket.io'); app = module.exports = express.createServer(); app.configure(function () { app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(require('stylus').middleware({ src: __dirname + '/public' })); app.use(app.router); return app.use(express.static(__dirname + '/public')); }); app.configure('development', function () { return app.use(express.errorHandler({ dumpExceptions: true, […]

Socket.io和RESTFul如何协同工作?

(我对RESTFul不熟悉,如果我的概念错误,请纠正我) 在RESTFul体系结构中,我们将每个操作映射到一个URL。 如果我点击“发表文章”,可能实际上是URL http://example.com/和一些数据action=post&content=blahblah 。 如果我想发布,但不刷新整个网页,我可以使用JavaScript的XMLHTTPRequest。 我发布它,然后得到它的内容,并将其插入到我的网页中的div。 这些操作都是asynchronous的。 然后我知道有一个名为WebSocket东西,它是封装的socket.io 。 它使用“消息”在客户端和服务器之间进行通信。 当我点击“发布”客户端只是调用socket.send(data)并等待服务器的client.send(data) 。 这是神奇的。 但是URL呢? 两种模式都可以使用而不用重复自己? 换句话说,每个动作都有它的URL,其中一些可以实时与用户交互(通过socket.io?) 而且,我应该这样做吗? 在一个非常互动的networking程序(例如游戏)中,RESTFul仍然是有意义的?

在Socket.io中创build房间

我想请求你的帮助。 我在socket.io的客户端很困难,我想在客户端调用这个代码在socket.io中创build一个空间: var rooms = []; socket.on('create', function (roomname) { rooms[room] = room; socket.room = roomname; socket.join(roomname); subscribe.subscribe(socket.room); }); 我不知道这是否正确,如果不是,请帮我纠正这个家伙。 我不是在节点js和套接字赞成,但我已经阅读他们的维基。 有没有什么办法可以创造空间? 多谢你们。

得到有多less人在socket.io的聊天室里

我现在有这个代码设置了缺口和空间: io.sockets.on('connection', function(client){ var Room = ""; client.on("setNickAndRoom", function(nick, fn){ client.join(nick.room); Room = nick.room; client.broadcast.to(Room).emit('count', "Connected:" + " " + count); fn({msg :"Connected:" + " " + count}); }); 我想知道如何让多less人连接到特定的聊天室…比如Room.length 客户端 : function Chat(){ this.socket = null; this.Nickname = ""; this.Room = ""; var synched = $('#syncUp'); this.Connect = function(nick, room){ socket = io.connect('http://vybeing.com:8080'); Nickname […]

在socket.io中使用RedisStore的例子

我正在尝试跨多个进程和/或服务器扩展一个简单的socket.io应用程序。 Socket.io支持RedisStore,但是我很困惑如何使用它。 我正在看这个例子, http://www.ranu.com.ar/post/50418940422/redisstore-and-rooms-with-socket-io 但我不明白在代码中使用RedisStore与使用MemoryStore有什么不同。 有人可以向我解释吗? 另外configurationsocket.io使用redisstore与创build自己的redis客户端和设置/获取自己的数据有什么区别? 我是新来的node.js,socket.io和redis所以请指出,如果我错过了一些明显的东西。