Tag: socket.io

未捕获的ReferenceError:io未定义

我是新来的node.js和尝试与nodejs做一个简单的聊天应用程序,但我不能得到这个错误“未捕获ReferenceError:io未定义”。 我知道这是一个在这里讲了很多错误。 但通过谷歌发现几个职位后,仍然没有解决我的问题。 nodejs文件 var express = require('express'), app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server); server.listen(2000); app.get('/',function(req,res){ res.sendfile(__dirname + '/chat.html'); }); io.sockets.on('connection',function(socket){ socket.on('send message',function(data){ io.sockets.emit('new message',data); }); }); 和html文件 <!DOCTYPE html> <html> <head> <title>Chat with node and socket io</title> <style type="text/css"> #chat{ height: 400px; } </style> </head> <body> <div id="chat"></div> <form id="send_message"> <input […]

在Node.js和Socket.io聊天应用程序中parsing表情符号

我已经创build了基于这个项目的聊天应用程序,但是我现在要做的就是为表情符号parsing器。 例如,如果我写下如下的东西: What's up? 🙂 这可以parsing为“这是怎么回事? 而且,当有人访问房间时,来自该房间的所有消息也需要被parsing。 什么是最简单的方法来做到这一点? PS应用程序没有数据库。

为什么socket.io为一个事件返回多次

我刚开始拿起socket.io。 我试图在angular.js中使用它,一切正常。 但是,它多次不断返回 在我的controller.js socketio.emit('GameOver',$scope.currentPlayer.Name); socketio.on('GameOverEmit',function(data){ if(data === $rootScope.user.user_name){ var result = { opponent : rdyplayers.user_name, result : "won" }; // keep getting multiple result console.log(result); }else{ var result = { opponent : rdyplayers.user_name, result : "lose" }; // keep getting multiple result console.log(result); } }); 在我的server.js io.sockets.on('connection', function (client) {​ client.user_name = user.user_name;​ //Useful […]

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 […]

express和socket.io:将var io传递给路由器

我花了最后几个小时搞清楚如何将socket.io与高速路由器相结合我试图让socket.io工作。 这是我使用的软件包: "express": "~4.9.0", "ejs": "~0.8.5", "socket.io":"~1.3.3" 我的app.js: // loading modules var express = require('express'); var http = require('http'); var app = express(); var server = http.createServer(app); var io = require('socket.io').listen(server); //routers var secretRouter = require('./routes/secret'); // Setup serving static assets app.use(express.static('public')); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); // Setup initial […]

有人可以提供一个例子,我需要使用socket.io-redis?

从socket.io文件[ http://socket.io/docs/rooms-and-namespaces/#sending-messages-from-the-outside-world]我读了下面,但我似乎无法连接到任何用例在我脑海中: 从外部发送消息在某些情况下,您可能希望将事件从Socket.IO进程的上下文外部发送到Socket.IO命名空间/房间中的套接字。 有几种方法来解决这个问题,比如实现自己的通道来发送消息到stream程中。 为了便于这个用例,我们创build了两个模块: socket.io-redis socket.io-emitter 通过实施Redis适配器: var io = require('socket.io')(3000); var redis = require('socket.io-redis'); io.adapter(redis({ host: 'localhost', port: 6379 })); you can then emit messages from any other process to any channel var io = require('socket.io-emitter')(); setInterval(function(){ io.emit('time', new Date); }, 5000);

不能从客户端发送套接字消息

所以,我正在设置一个快速的应用程序,像护照,mongoose,连接闪光等所有常见的好东西,我使用socket.io来侦听和发送消息。 目前,我只是向所有人发送消息(稍后将设置房间),一切(但是这个)都很好。 当最终用户访问任何页面时,所有当前连接的用户都会收到一条消息“Hi everyone!”,而刚刚连接的用户显然也会向他们发送消息。 到目前为止所有的预期… 问题:我有一个页面上有一个button… <button id="register" type="button" class="btn btn-warning">Register</button> 点击时,会发出一条消息,说“我要注册!” (目前给大家,但那并不重要)。 作为回应,服务器应该听取这个信息,并通过发出一个消息回应说'嗯,会考虑它!'。 在服务器上不会听到“注册”,所以不能发出“注册响应”的回复。 任何人都可以看到我做错了什么? 我见过这个SocketIO,不能发送数据从客户端和其他几个相似,但我已经做了他们所build议的:/ NB :应用程序运行在http://localhost:3000/和使用http://localhost:8678/events的io上。 如果您需要更多信息,请告诉我 客户端JS / jQuery(app.js) var app = app || {}; app = (function($){ $(function () { ///////////////////////////////////////////////////// // Connect to io and setup listeners ///////////////////////////////////////////////////// var socket = io.connect('http://localhost:8678/events'); socket.on('connected', function (data) { console.log(data); // Always […]

JsonWebToken | 获取请求validation

我目前正在尝试构build一个基于令牌的简单login系统。 我有一个简单的login表单,将凭据发送到服务器。 创build一个令牌也适用于我。 如果用户login并手动打开用户仪表板链接,则服务器将收到请求。 我怎样才能validation令牌呢? 我无法find一个方法来访问它的get事件。 令牌创build: var token = jwt.sign({ Username: 'test' }, app.get('tokenPass')); // This token is either send as response or via emitting. 在客户端,我将其存储为 $window.sessionStorage = token; 我的问题: app.get('/dashboard', function(req, res) { // req is not including the token // I cant deliver the dashboard without // validating that the requesting user […]

RTCMult连接室连接不断抛出错误:找不到会话描述。 复查

我正在使用RTCMulticonnection MultiRTC脚本来捕获和stream多个用户相机。 我想,如果任何用户刷新页面,然后会话在后台保持活着,即使我已经添加页面unload事件 window.onbeforeunload = function() { rtcMultiConnection.close(); }; 我的问题是,刷新后join房间一直抛出错误/警告消息会话描述未find。 重新检查.. 为什么没有find会话描述? 我检查了RTCMulticonnection js,这个错误是从下面的函数抛出。 function joinSession(session, joinAs) { if (isString(session)) { connection.skipOnNewSession = true; } console.log(session); console.log(joinAs); if (!rtcMultiSession) { log('Signaling channel is not ready. Connecting…'); // connect with signaling channel initRTCMultiSession(function() { log('Signaling channel is connected. Joining the session again…'); setTimeout(function() { joinSession(session, joinAs); […]

使用jQuery更新表

在服务器端,我每3秒发出一次数据库的最后10行; setInterval(function() { connection.query("SELECT * FROM report ORDER BY id DESC limit 10", function(err, rows) { if (err) console.log(err); else { console.log("Last 10 record emitted."); // console.log("rows: " + JSON.stringify(rows, null, 3)); io.emit("last_list", rows) } }); }, 3000); 在客户端,我将这些行附加到表中; socket.on('last_list', function(rows) { for (var i = 0; i < rows.length; i++) { var row = […]