Articles of socket.io

TypeError:io.connect不是一个函数

我正在使用节点js和socket.io( http://rawkes.com/articles/creating-a-real-time-multiplayer-game-with-websockets-and-node.html )来学习一个简单的多人游戏教程。 。 我有一个问题,当我试图连接到套接字server.I得到一个错误,说TypeError:io.connect不是一个函数PS:我是一个总的初学者在节点js和socket.io所以请帮助我。 var util = require("util"); io = require("socket.io"), Player = require("./Player").Player; var socket, players; function init(){ players = []; socket = io.listen(8000); socket.configure(function() { socket.set("transports", ["websocket"]); socket.set("log level", 2); }); setEventHandlers(); socket = io.connect("http://localhost", {port: 8000, transports: ["websocket"]}); };

socket.emit不适用于其他打开的连接

我正在做使用node.js的tic tac脚趾多人游戏,但我正面临以下问题 1>警报不会在其他打开的连接中popup //app.js var io = require('socket.io')(server,{}); io.sockets.on('connection', function(socket){ socket.on('blockClicked',function(data){ socket.emit('newPositions',data.value); }); socket.on('disconnect',function(){ delete SOCKET_LIST[socket.id]; }); }); //index.html socket.on('newPositions',function(data){ blockSelected(data); alert("recieved"+data); }); 我哪里错了?

移动我的聊天应用程序在常规的URL而不是本地主机

我已经做了一个聊天服务器,端口80听我的网站,所以每次我想访问我的网站,我必须打开本地主机:80,但我想访问我的网站的常规页面,并给它相同的聊天function,我只是build成。 例如,我想在打开mysite.com/page.php时显示我的聊天function。 我怎么做? 因为打算打开我的网站的人将打开我的url,我很困惑如何将该聊天应用程序从本地主机移动到我的真实网站。

使用Socket.io来填充谷歌区域图 – 'google.visualization.DataTable不是一个构造函数'

我使用NodeJS和Socket.io从数据库中获取数据。 我现在想用这些数据填写谷歌面积图,但我有点失败。 数据以Objectsforms传输。 每个Object包含两个值(date时间和值)。 我将这些值附加到数组,然后将它们存储在DataTable : google.load('visualization', '1', { packages: ['corechart'] }); google.setOnLoadCallback(drawChart); var socket = io(); getData(); function drawChart(dataArray) { var data = new google.visualization.DataTable(); data.addColumn('string', 'DateTime'); data.addColumn('number', 'Value'); for (var i = 0; i < dataArray.length; i += 2) { console.log(dataArray[0]); data.addRow([dataArray[i], dataArray[i + 1]]); } var chart = new google.visualization.AreaChart(document.getElementById('chart')); chart.draw(data, { […]

如何处理webRTC多对多系统上的socket.io多个连接?

我已经build立了一个webrtc多对多系统(几个月前: WebRTCvideo会议(多对多) ),使用socket.io作为信令通道。 它工作正常,但我没有处理许多用户的许多房间,我只是把所有的用户放在一个单一的房间(服务器端的用户数组,node.js)。 首先,当我构build系统时,我意识到当新参与者到达时,我不能调用io.sockets.emit(“房间”),然后创build优惠和答案。 用户(已经在房间中)不能同时向新参与者发送报价,新参与者不能同时向这些用户发送答案。 它必须是一对一的连接过程,所以一个用户(已经在房间里)把这个提议发送给新的参与者,最后一个用户返回每个用户的答案。 我通过将新的参与者socket_id传递给用户来做到这一点,所以当第一个用户钓鱼与新参与者的进程连接时,他调用服务器并发送新的参与者socket_id,然后服务器调用(io.sockets.socket(“目标“)。发出(…))用户号码二等等。 我想知道我是否正确,我不能同时在用户(已经在房间里)和新参与者之间进行提供/回答协商。 另一方面,我知道socket.io处理多路复用,并且许多套接字可以同时连接,但是如果我使用全局variables来pipe理报价/响应协商,例如一个索引variables随着用户已经增加在房间里与新参与者有联系,我的意思是: users[index];//let's say we have 5 users and currentuser is the new guy io.sockets.socket(users[index]).emit('user incoming', currentuser); 并突然其他新的参与者到达currentuser仍然连接到其余的用户,比方说,用户数4,所以索引值将3(以编程方式)。 在这种情况下会发生什么?因为这个突然的新参与者将成为新的当前用户,并且以前的当前用户还没有完成连接到所有用户,我的意思是,他们使用相同的variables,相同的variables实例,我对此感到困惑点。 我想要为许多用户创build许多房间的代码,但我需要了解这一点。 我testing了我的应用程序,一切工作正常,但我没有与并发用户连接testing。 我应该使用Socket.io函数(发出,客户等),而不是使用全局variables? 最后我的代码,关注socket.on('user incoming',function(room){…} 我从Simon Pietro Romano的webRTC实时通信中获得了这个信息,Sam Dutton也是这个话题中的一个硬汉: var users = []; var currentuser; var index = -1; io.sockets.on('connection', function (socket){ // Handle 'message' messages socket.on('message', function […]

发送socket.io实例来表示路由

我正在尝试创build一个nodejs应用程序,它将使用他们的API在各种网站中进行search。 一旦从使用socket.io的API接收结果,结果将被发送到客户端。 然后前端将使用jQuery添加这些结果。 什么是实施这个最好的方法? 到目前为止我已经尝试过: 示例代码1 起初,我创build了一个快递中间件,将套接字添加到请求中 – var socketMiddleWare = function(req, res, next){ io.on('connection', function(socket){ console.log(io.engine.clientsCount + " clients connected."); req.socket = socket; socket.on('disconnect', function(){ console.log(io.engine.clientsCount + " clients after disconnec."); }); }); next(); }; 然后将这个中间件添加到我的路线 – app.use('/users', socketMiddleWare, users); 它的工作原理,但问题是每次用户刷新页面时都会创build多个事件监听器。 示例代码2 所以然后我试了(示例代码) io.on('connection', function(socket){ console.log("user connected"); global.socket = socket; socket.on('disconnect', function(){ console.log("disconnect"); }); […]

Socket.IO:用大量波动的数据更新客户端的最有效的方法

想象一下Agar.io. 与聊天应用程序不同,随着玩家在地图上移动,用户(或玩家)和其他环境对象的列表将不断变化。 那是因为每个客户端都不能收到关于每个对象的更新,因为地图太大,滞后太多。 那么使用Socket.IO更新客户端的下列哪种方法会更高效: 发送一个包含数据的环境数组,replace每个客户端上的本地数组。 当对象在播放器视野中出现/消失时发送单个消息,并用对象修改本地数组对象。 如果有比上述两种更好的方法,请概述一下。

Socket.io无法访问与Express相同的会话

我试图使用express和socket.io共享会话,我已经得到它曾经工作,但不知何故,它不会工作了。 我跟着这个链接如何与Socket.IO 1.x和Express 4.x共享会话? 并访问了socket.io上的会话,但它不是以某种方式相同的会话。 看来每个socket.io连接都会产生新的会话。 performance req.session.test =='有些值' Socket.io socket.request.session.test ==未定义 我是否错过了一些东西,或者是这些模块中的一些错误? – 编辑 – 编辑 – 编辑 – 发现是什么原因造成的问题是,当我设置cookie以下 cookie: { domain: '.local.fi' } 我需要跨子域有相同的会话,我怎么能做到这一点,因为许多页面成功? – 编辑 – 编辑 – 编辑 – 的package.json { "dependencies": { "express": "^4.13.4", "express-session": "^1.13.0", "socket.io-session": "^0.0.5", "express-socket.io-session": "^1.3.1", "socket.io": "^1.4.5" } } 开始我的index.js 'use strict' var express […]

NodeJS + socket.io我需要快递吗?

简单的问题。 我使用phaser和socket.io构build在线浏览器游戏。 现在我可以告诉我会明确地使用socket.io,但expression什么呢? 一旦我启动服务器,我还需要做什么? 我觉得我需要的只是像HTTP服务器的3行代码。 任何意见我还会用什么来expression?

无法读取socket.io中未定义的属性

我得到这个错误(未定义'上')。 这是我的服务器代码 var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/', function(req, res){ res.send('Hello'); }); io.on('connection', function(socket){ console.log('a user connected'); io.emit('EPSON', {'name':'Lalit'}); console.log("Event Emitted successfully"); }); http.listen(3000, function(){ console.log('listening on *:3000'); }); Here is my client code: var io = require('socket.io-client'); //var socket = io.connect('http://printserverproject-happylaundry.rhcloud.com:8000'); var socket = io.connect('http://172.20.20.240:3000'); socket.on('connect', function(sock) […]