Tag: socket.io 1.0

var io = require('../ ..')(server)是做什么的?

我在本地构build了https://github.com/Automattic/socket.io/tree/master/examples/chat项目,效果很好。 但是,多了解一个套接字应用程序的工作原理是很好的。 在主启动脚本中,一个被拉入require的模块是 var io = require('../..')(server) 需要什么('../ ..')呢? 谢谢!

socket.io doens't与运输工作:

我试图在socket.io中testing回退到轮询,以validation我的应用程序与不支持websockets的客户端因为任何原因一起工作。 我正在使用Express 4的非常基本的服务器/客户端的例子 。它适用于: // client-side var options = { transports: [ 'xhr-polling', 'websocket' ] }; var socket = io.connect('http://localhost:8080', options); socket.on('news', function (data) { console.log(data); socket.emit('my other event', { my: 'data' }); }); 但是,如果我从交通工具中删除“websocket”,客户端没有任何事情发生 – 没有错误,没有事件,什么都没有。 在服务器端我只看到: Tue, 03 Mar 2015 16:45:49 GMT socket.io:server serve client 304

Socket.IO和HapiJS之间的连接

我们有一个使用HapiJS实现的REST服务器和一个使用Socket.IO实现的Websockets服务器(它们都在单个服务器上运行,但在不同的端口上运行)。 我想通知HapiJS服务器的Websockets服务器发送带有一些数据的事件给特定的客户端。 套接字服务器在端口8081上运行,而REST在8080上。 这个想法是,一个客户做一个行动(POST请求),这是logging在“行动历史”表。 该行为涉及其他用户,因此应在实时发生这种情况时通知他们。 这就是为什么其他用户正在监听websocket连接。 我怎么能告诉套接字服务器发送一个事件到一个特定的客户端,这应该从REST服务器完成? 目前我想了三种方法: 单独的服务器sockets和rest和使用RabbitMQ沟通 我试图实现Socket.IO发射器,但它需要Redis数据库(我仍然不知道为什么)。 当我尝试使用发射器从HapiJS路由处理程序连接到套接字时,我得到: export function* postRefreshEvent(userId) { var connection = require('socket.io-emitter')({ host: '127.0.0.1', port: 8081 }); connection.in('UserHistory').emit('refresh', userId); return {statusCode: OK} } Error: Ready check failed: Redis connection gone from end event. 在RedisClient.on_info_cmd 刷新不在Socket服务器中执行。 我只是看不到日志显示。 做一个特殊的事件,并使用一个普通的socket.io客户端从hapijs连接到websockets并发出新的事件。 样本GIST 。 你有没有想到这样的事情? 我感谢每一个帮助!

io.sockets.socket(socket_id).emit() – 没有方法'套接字'

即时通讯运行nodejs服务器+ express + socket.io版本1.0.4和一切工作如预期在我的应用程序,但我只是不能发出消息从服务器端到客户端通过: socket_server.sockets.socket(socket_id).emit("message", data); 当我尝试服务器抛出以下错误: TypeError: Object #<Namespace> has no method 'socket' 但我可以记住,代码工作在我的socket.io 0.7。 /0.8。 项目 我究竟做错了什么? 🙁 我的app.js(nodejs服务器)的一个片段: var express = require('express'); var app = express(); /* Server Start */ var server = app.listen(8080, function() { console.log('Listening on port %d', server.address().port); }); app.set("view options", { layout: false }); app.use(express.static(__dirname + '/public')); app.get('/', […]

socket.io 1.2.1如何在重新连接后解决双重事件

在socket.io的博客中说,在1.2.1版本中 “自述文件修复,以防止在重新连接的示例中的双重事件[@nkzawa]” 我为客户端和服务器下载了1.2.1版本,但是在重新连接之后仍然是两次调用事件。 或者我应该用自述文件做些什么? 我试过这种方式重新连接,它的工作,但我可以用它来生产。 这是不是很方便? socket.disconnect() // remove socket object socket = undefined // connect again socket = io.connect({'forceNew':true}) 正如我所说的是正确的方式,还是有缺点? 更新,添加代码 服务器端代码 socket.on('client_emited', function(data){ socketIO.to('this socket id').emit('server_emitted'); }) 客户端代码 var socket; function connectSocket () { if (!socket) socket = io({'forceNew':true}); else socket.connect(); } socket.on('connect', function(){ console.log('CONNECTED TO SOCKET.IO SERVER. SENDING "client_emited" EVENT'); socket.emit('client_emited'); }); […]

我可以使用nodejs将麦克风audio从客户端传输到客户端吗?

我正在尝试创build一个实时语音聊天。 一旦客户端正在按住一个button并进行通话,我希望通过套接字将声音发送到nodejs后端,然后我想将这些数据传输到另一个客户端。 这里是发件人的客户端代码: socket.on('connect', function() { var session = { audio: true, video: false }; navigator.getUserMedia(session, function(stream){ var audioInput = context.createMediaStreamSource(stream); var bufferSize = 2048; recorder = context.createScriptProcessor(bufferSize, 1, 1); recorder.onaudioprocess = onAudio; audioInput.connect(recorder); recorder.connect(context.destination); },function(e){ }); function onAudio(e) { if(!broadcast) return; var mic = e.inputBuffer.getChannelData(0); var converted = convertFloat32ToInt16(mic); socket.emit('broadcast', converted); } }); 然后服务器获取这个缓冲区并将其传输到另一个客户端(在本例中是同一个客户端) […]

Socket.IO是一个可靠的聊天服务器为大量的用户,如果是的什么是你的堆栈?

我已经阅读了许多关于Socket.IO的博客,并且对它的function印象深刻。 我打算使用它的一个聊天应用程序和普通的用户数量最less的用户,它正在完美的工作。 但在生产networking中使用Socket.IO时是否有任何缺陷? Socket.IO最适合于消息stream量非常大的大型消息系统。 如果是的话,什么是最好的技术堆栈沿着Socket.IO使用,“即使在更多的负载时,100%可靠”。 任何人都已经有了Socket.IO在实现大规模消息传递系统方面的经验。 Stack我想用的是Socket.IO,Redis,Cassandra和MySQL。 到目前为止,我已经经历了许多Socket.IO的例子,许多人试图用不同的方式来做。 有些人使用Array来存储Socket ID,而有些人使用Redis。 我明白,使用Redis将有一定的帮助。 但我不想停在那里。 我想学习Socket.IO应用程序的最佳体系结构。 请build议我一个path。 编辑 对于我来说,最好的堆栈就是一种失败的速度比别人less的东西。

如何使用我的Express 4路由中的socket.io将事件发送到连接的套接字?

这是其他人问的问题,但由于我的Express设置不同,我无法从他们提供的答案中获益。 我已经实现了socket.io,并以简单的方式在我的服务器上工作。 这是如何工作的: 在bin/www : #!/usr/bin/env node var debug = require('debug')('gokibitz'); var app = require('../../server'); app.set('port', process.env.PORT || 3000); var server = app.listen(app.get('port'), function() { debug('Express server listening on port ' + server.address().port); }); var io = require('socket.io').listen(server); io.on('connection', require('../routes/socket.js')); 我所有的路线和其他快速安装在../../server.js 。 var routes = require('./server/routes/index'); var user = require('./server/routes/user'); … app.use('/', routes); app.use('/api/user/', user); […]

如何使用Socket.IO最佳地构buildExpress V4.11 +项目?

我已经使用了最新版本的快速生成器 ( 链接 )来生成样板Express 4.11.2项目。 我试图找出设置Socket.IO 1.3.3的最好方法,在Express框架中,http服务器被移动到它自己的bin/www文件中。 我感到困惑,因为它似乎我需要app.js的快递服务器,在它被导出到bin/www 。 我已经尝试了几个小时的Googlesearch,并没有得到任何东西,似乎Express框架正在移动如此之快,以前的所有文章都过时了。 任何帮助将不胜感激! 我将下面的两个文件包括在内,以便在生成样板快速项目后可以看到我正在处理的内容。 斌/ WWW #!/usr/bin/env node /** * Module dependencies. */ var app = require('../app'); var debug = require('debug')('Express-Socket:server'); var http = require('http'); /** * Get port from environment and store in Express. */ var port = normalizePort(process.env.PORT || '3000'); app.set('port', port); /** * Create […]

SocketIo.use(function(socket,next)) – 下一步如何捕获或接收它?

我find了使用socket.IO 1. * width express的例子。4.这是一个链接 Everyting完美的作品。 但有一个代码: io.use(function(socket, next) { try { var data = socket.handshake || socket.request; if (! data.headers.cookie) { return next(new Error('Missing cookie headers')); } console.log('cookie header ( %s )', JSON.stringify(data.headers.cookie)); var cookies = cookie.parse(data.headers.cookie); console.log('cookies parsed ( %s )', JSON.stringify(cookies)); if (! cookies[COOKIE_NAME]) { return next(new Error('Missing cookie ' + COOKIE_NAME)); […]