Tag: socket.io

WebRTC:将多个监听器连接到一个客户端,一次一个

我一直在试图让WebRTC与广播器和多个监听器一起工作,但是当通过信号传输(使用nodejs&socket.io)传输描述和候选者时,我却陷入了困境。 我可以通过一个简单的nodejs套接字应用程序在两个浏览器之间工作,它只是将描述和候选人广播给其他已经连接的客户端,但是当我尝试存储描述并与新打开的浏览器连接时,什么都不会发生。 我基本上需要了解的是,我需要为一个浏览器提供什么,才能开始与另一个浏览器进行通信? 我正在进行的项目需要听众join会议室进行身份validation,并开始聆听正在发送的任何媒体。 以下是我的客户端代码: var audioContext = new webkitAudioContext() var client = null var configuration = { 'iceServers': [{ 'url': 'stun:stun.example.org' }] } $(function () { window.RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection client = new RTCPeerConnection(configuration, { optional:[ { RtpDataChannels: true } ]}) client.onnegotiationneeded = function () { console.log('Negotiation needed') createOffer() } client.onicecandidate […]

socket.io:如何从其他套接字获取套接字variables?

一个房间里有两个玩家。 每个玩家都有一个颜色保存为套接字variables: socket.on('join', function(color){socket.color = color}); 当使用此颜色的客户端触发请求时,很容易获得此颜色variables: socket.on('own_color', function(){ console.log('own color: ' + socket.color); }); 但现在我们需要其他玩家的颜色。 也许我们可以通过使用其他玩家的套接字ID来得到它: socket.on('partner color', function(){ var partnerid = io.sockets.clients('room1')[0].id; var partnercolor = '????????' console.log('partner color ' + partnercolor); }); 你知道如何获得其他玩家的颜色吗?

将Backbone.iobind(socket.io)与一组node.js服务器一起使用

我使用Backbone.iobind将我的客户端骨干模型通过socket.io绑定到后端服务器,后端服务器又将这些模型存储到MongoDB中。 我使用的是socket.io,所以我可以将更改同步到其他客户端主干模型。 当我尝试在一个node.js服务器集群上运行同样的事情时,问题就开始了。 使用将会话存储到MongoDB的 connect-mongo可以轻松设置会话存储。 但是现在我不能通知所有的客户端,因为客户端分布在不同的node.js服务器之间。 我发现的唯一解决scheme是在不同的node.js服务器(例如mubsub )之间设置一个pub / sub队列,这似乎是一个非常重的解决scheme,每次更改都会触发所有服务器上的事件。

nodejs + amqp默默死亡

我有基本脚本采取amqp消息,并转发给socket.io它工作几个小时,有时几天,但最终它静静地停止转发amqp消息,同时继续发出心跳。 日志显示,当它到达中断状态时,它不会尝试发送socket.io消息,因为amqp消息到达,所以我认为问题是与amqp连接/订阅,而不是socket.io 我testing了脚本运行时手动closures并重新启动rabbitmq服务器,似乎没有问题重新连接,并继续按照它应该的function。 var port = 8888, http = require("http"), amqp = require("amqp"), socketio = require("socket.io"), express = require("express"), rabbitMq = amqp.createConnection({ host: 'server', reconnect: true }), app = express(), server = http.createServer(app), io = socketio.listen(server); rabbitMq.on("ready", function () { console.log("ready"); var queue = rabbitMq.queue("ft-secondary-display", function () { queue.bind(rabbitMq.exchange('ft', {type: 'topic'}), "data"); console.log("bound"); queue.subscribe(function (message, […]

io.connect(); 没有初始化,node.js

我正在使用http://code.tutsplus.com/tutorials/node-js-better-performance-with-socket-io-and-dot–net-35076这个指南帮助我的项目… 我的index.js是 var express = require('express'); //var dot = require('dot').template; //var fs = require('fs'); var sio = require('socket.io'); var app = express(); var server = require('http').createServer(app); var io = require('socket.io').listen(server); server.listen(8080); var posts = [ { avatar: 'av1.gif', author: 'Jane Doe', text: 'Lorem ipsum ' }, { avatar: 'av2.png', author: 'John Doe', text: 'Nam interdum'}, […]

我可以检测一个节点Socket.IO客户端使用多less带宽?

我曾经有人声称我的网站使用了相当多的带宽,他们的互联网服务提供商正在对他们进行限制或者其他类似的东西。 关于如何获得客户端每秒接收和发送多less数据的任何想法? 我想在可以监视的地方(在客户端的屏幕上)显示小的使用情况。 谢谢

Primus.io和passport.js

我考虑从Socket.io迁移到Primus.io (由于可伸缩性问题),但我缺less的一个主要插件是一个primus- passportjs授权插件(类似passport.socketio )。 你知道这样的插件或代码示例吗?

尝试连接到本地快递服务器时“无法GET /”

完成Code School的node.js课程之后,我按照这个指南来介绍如何使用express 3来设置socket.io服务器,但是当我尝试连接到localhost:8080时,它给了我“无法GET /”。 我的防火墙设置为允许端口8080的传入和传出请求,并且我安装了express和socket.io的最新版本。 我的代码如下: app.js var express = require("express"); var socket = require("socket.io"); var app = express(); app.use(express.static(__dirname + "/public")); var server = app.listen(8080); var io = socket.listen(server); 的index.html <!doctype html> <html> <head> <script src="/socket.io/socket.io.js"></script> <script type="text/javascript"> var server = io.connect("http://localhost:8080"); </script> </head> <body> <p>Test</p> </body> </html> 目录结构 C:\Users\Joseph\Desktop\test\node_modules \public\index.html \app.js 编辑: 这也不适用于app.js: […]

我是否破坏了使用NodeJS / socket.io与我的AJAX脚本的好处?

我正在创build一个具有聊天function的应用程序,并且我决定使用NodeJS / socket.io。 我的项目也使用PHP,我想从我的应用程序中的数据存储在MySQL服务器。 这是目前发生的事情 socket.on(客户端连接) – > AJAX脚本,将新客户端的用户名添加到MySQL数据库(我想保留连接到MySQL聊天的用户列表) 任何人发送消息 – > AJAX脚本将该消息的时间戳版本放入MySQL数据库(聊天日志) socket.off – > AJAX脚本从MySQL数据库中删除客户端 我使用这么多的AJAX,我毁了使用socket.io的好处? 据我的理解:我仍然得到了与socket.io的实时连接的好处,我的AJAX导致我的PHP服务器上的单独负载,但这些AJAX操作不应该中断或阻止节点。 但是,这将单独加载在PHP服务器减慢客户端socket.io连接? 我是Node / socket.io的新手,所以我可能会丢失一些关于后端操作的基本知识。

两个node.js服务器之间的文件/数据传输

我试图build立一个小系统有一个服务器(又名传感器)传输数据文件到另一台服务器(又名服务器)(都运行node.js应用程序),当它看到另一个可用。 理想情况下,服务器应该监听来自传感器的连接,当连接完成后,传感器将把所有可用的数据文件传送到服务器,然后closures连接。 我一直在玩一个名为delivery.js的图书馆( https://github.com/liamks/Delivery.js ),在阅读文档时看起来很有希望,但作为一个新手js程序员,我正在努力的去理解为什么我在这个例子的尝试不起作用。 我在传感器上使用以下代码: var io = require('socket.io'), dl = require('delivery'), fs = require('fs'); var socket = io.connect('http://192.168.0.14:5001'); socket.on('connect', function() { log( "Sockets connected" ); delivery = dl.listen( socket ); delivery.connect(); delivery.on('delivery.connect',function(delivery){ delivery.send({ name: 'sample-image.jpg', path : './sample-image.jpg' }); delivery.on('send.success',function(file){ console.log('File sent successfully!'); }); }); }); 和运行示例代码的服务器: var io = require('socket.io').listen(5001), dl = […]