Tag: socket.io

Socket.io触发两个node.js应用程序之间的事件?

我有两个服务器,一个用于后端应用程序,另一个服务于前端。 它们是抽象的,但共享相同的数据库,我需要两个之间使用socket.io互相之间的实时事件。 前端 // serves a front end website var appPort = 9200; var express = require('express'); var app = express(); var http = require('http'); var server = http.createServer(app); var io = require('socket.io').listen(server); io.sockets.on('connection', function(socket) { socket.on('createRoom', function(room) { socket.join(room); // use this to create a room for each socket (room) is from client side […]

发射到单个客户端套接字io 1.3.2

我已经在这里看了几个答案,但我认为他们指的是旧版本的socket.io,因为他们的解决scheme没有为我工作。 我正在浏览器中获取数据 io.emit('update', data) 但它发射给所有的客户,所以当我去到相同的URL时,相同的数据显示在多个窗口中。 是否需要在连接时将客户端ID存储在某个地方,还是可以在排放之前将其还原? 请具体说明。 我尝试了几个其他的解决scheme,但我得到了很多ReferenceError'id'没有定义或套接字而不是套接字。 服务器设置和连接: var app = express(); var server = require('http').createServer(app) var io = require('socket.io')(server) app.get('/aPath', function (req, res, next) { res.writeHead(200) var data = { "val1": req.query.val1, "val2": req.query.val2, "val3": req.query.val3, "val4": req.query.val4, "val5": req.query.val5, "val6": req.query.val6, } /*console.log(io.sockets.id)*/ //io.to(io.sockets.id).emit('update', data) //io.sockets.socket(id).emit('update', data) io.emit('update', data) res.end("OK") }) io.on('connection', […]

在服务器和任意NodeJS进程之间创buildWeb套接字stream

在localhost:5000上运行服务器,我想通过web套接字从另一个NodeJS进程连接到该服务器。 从我的networking套接字的经验,我总是需要服务器对象来创build一个Web套接字服务器。 var http = require('http'); // create http server var server = http.createServer(function(req, res) { // serve files and responses … }); // Socket.io server listens to our app var io = require('socket.io').listen(server); // Send current time to all connected clients function sendTime() { io.sockets.emit('time', { time: new Date().toJSON() }); } // Send current […]

在纯Javascript中创buildcanvas/位图(无html)

我正在用socket.io在Javascript中开发一个iPhone游戏的服务器。 服务器的目的是绘制一个屏幕上的位图与玩家的path,以检查该path是否已经绘制。 简而言之,所有的绘图只会显示在客户端屏幕上。 这里是我发现的创build一个canvas,然后find它的像素颜色的代码。 但是,我没有HTML代码,因为它只是使用Javascript。 那么这个代码将在一个只有Javascript的程序中工作吗? 如果没有,我怎么能做这样的事情,但有相同的结果? 编辑:我使用socket.io与node.js var canvas = document.createElement("canvas"); var context = canvas.getContext("2d"); // Make sure to set the size, otherwise its zero canvas.width = 100; canvas.height = 100; // Draw to the offscreen canvas context.fillStyle = "#0000ff"; context.fillRect(0,0,50,50); context.fillStyle = "#ff9900"; context.arc(50,50,25,50,0,Math.PI*2); context.fill(); // document.body.appendChild(canvas) // To preview the canvas var […]

找出一个套接字是否为null

如何找出一个套接字= null或未定义 我想要实现的例子 if(socket.username == NULL){ givenulldata() } 这是我的sockets删除断开连接,但有时用户还没有真正离开网站,我不想惹恼他们请刷新页面的东西,当它不需要。 由于删除笔记本电脑上的电池没电或无线连接断开和重新连接(移动设备更常见的问题)等 socket.on('disconnect', function(data){ if(!socket.username) return; delete username[socket.username]; });

socket.io.js返回一个404

在尝试将socket.io/nodejs整合到页面中之后,我遇到了很多尝试为其设置服务器后端的问题。 通过nvm安装节点(节点版本0.12.1 ,socket.io版本1.3.5 ) 看起来,当我尝试运行服务器(通过一个简单的node receiver.js ),我不能连接到我的index.php文件中的/socket.io/socket.io.js ,如下面提供的代码所示: index.php (客户端) <!– in html > head –> <script src="/socket.io/socket.io.js"></script> <!– Problem here –> <script> if (typeof io === 'undefined') { console.error("Error connecting to nodejs backend! Expect some errors"); } var socket = io(); </script> <script src="/assets/js/selector.js"></script> receiver.js (服务器端) console.log('loading requirements…'); var io = require('socket.io')(80); var net […]

无法使用nodeJS在html中设置Image src

我在nodeJS上是新的,我无法在我的客户端html中设置img标签的src。 因为我的节点服务器运行在端口3000上,当我打到http:// localhost:3000时, 下面是我的server.js文件的代码 var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/', function (req, res) { res.sendFile('/var/www/UI-Test/client.html'); }); io.on('connection', function (socket) { console.log('user joined '); }); http.listen(3000, function () { console.log('listening on *:3000'); }); 下面给出了client.html的代码 <html> <body> <img src="f1.png" /> <!– also tried "./f1.png" –> <script> var socket = io(); […]

根据客户端POST表单的开关切换套接字

在我们的数据处理API控制器中,根据客户端填写或未填写 POST FORM的POST FIELDS,我们有CASE SWITCH套接字。 问题是:什么是最简单的方法来确定正确的CASE根据张贴字段。 假设我们在客户端POST FORM上有六个不同的字段 计算总共64个的所有可能性 在Sails中,我们正在寻找最有效的方式来标记每个组合 ,以便切换大小写,然后在API控制器中路由每个组合 。

node.js socket.io无法发送到特定的客户端

我发现了一些这样的参考,但实际上没有直接的帮助。 另外根据一些研究,这是向特定客户端发送消息的正确方式。 我有: io.sockets.socket(players[i].id).emit('deal_card', { // etc }); 我得到这个错误: Missing error handler on 'socket'.TypeError: Object #<Namespace> has no method 'socket' 有任何想法吗?

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

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