Questions tagged «socket.io»

Socket.IO旨在使每个浏览器和移动设备中的实时应用成为可能,从而模糊了不同传输机制之间的差异。它支持多种传输,例如WebSockets,Flash套接字,长轮询等,在传输失败时会自动回退。


5
最简单的Socket.io示例的示例是什么?
因此,我最近一直试图了解Socket.io,但是我不是一个非常出色的程序员,并且几乎可以在网上找到每个示例(相信我已经花了数小时的时间),还有一些使事情变得复杂的东西。许多示例都会使我感到困惑,或者连接到一些奇怪的数据库,或者使用coffeescript或大量的JS库将事情弄乱。 我很乐意看到一个基本的,可以正常运行的示例,其中服务器仅每10秒向客户端发送一条消息,说明现在几点,然后客户端将数据写入页面或引发警报,这很简单。然后,我可以从那里弄清楚事情,添加数据库连接之类的我需要的东西。是的,我已经检查了socket.io网站上的示例,它们对我不起作用,我也不知道它们在做什么。
113 node.js  socket.io 


2
使用JWT验证套接字io连接
如何验证socket.io连接?我的应用程序使用来自另一台服务器(python)的登录端点来获取令牌,每当用户在节点侧打开套接字连接时如何使用该令牌? io.on('connection', function(socket) { socket.on('message', function(message) { io.emit('message', message); }); }); 和客户端: var token = sessionStorage.token; var socket = io.connect('http://localhost:3000', { query: 'token=' + token }); 如果令牌是在python中创建的: token = jwt.encode(payload, SECRET_KEY, algorithm='HS256') 如何使用此令牌对节点中的套接字连接进行身份验证?
105 node.js  socket.io  jwt  token 

5
Socket.io房间的broadcast.to和sockets.in之间的区别
Socket.io的自述文件包含以下示例: var io = require('socket.io').listen(80); io.sockets.on('connection', function (socket) { socket.join('justin bieber fans'); socket.broadcast.to('justin bieber fans').emit('new fan'); io.sockets.in('rammstein fans').emit('new non-fan'); }); socket.broadcast.to()和之间有什么区别io.sockets.in()?
102 node.js  socket.io 

3
Faye vs.Socket.IO(和剑圣)
Socket.IO似乎是最受欢迎和最活跃的WebSocket仿真库。剑圣使用它来创建一个完整的发布/订阅系统。 Faye也很流行,也很活跃,并且拥有自己的JavaScript库,使其完整功能可与Juggernaut媲美。剑圣使用节点作为其服务器,而Faye可以使用节点或机架。剑圣使用Redis进行持久化(更正:使用Redis进行发布/订阅),Faye仅将状态保留在内存中。 以上所有内容都准确吗? Faye表示它实现了Bayeux-我认为Juggernaut不会这样做-是因为Juggernaut的级别较低(即,我可以使用Juggernaut来实现Bayeux) 如果愿意,Faye是否可以切换到使用Socket.IO浏览器JavaScript库?还是他们的JavaScript库在根本上做不同的事情? 项目之间是否还有其他建筑/设计/理念差异?

12
WebSockets和Apache代理:如何配置mod_proxy_wstunnel?
我有 : Apache(v2.4)在我服务器的端口80上www.domain1.com,启用了mod_proxy和mod_proxy_wstunnel node.js + socket.io 在同一服务器的端口3001上。 www.domain2.com由于使用此处描述的方法,访问(使用端口80)将重定向到2 .。我已经在Apache配置中对此进行了设置: <VirtualHost *:80> ServerName www.domain2.com ProxyPass / http://localhost:3001/ ProxyPassReverse / http://localhost:3001/ ProxyPass / ws://localhost:3001/ ProxyPassReverse / ws://localhost:3001/ </VirtualHost> 它适用于除websocket部分之外的所有内容:ws://...不会像代理服务器那样传输。 当访问上的页面时www.domain2.com,我有: Impossible to connect ws://www.domain2.com/socket.io/?EIO=3&transport=websocket&sid=n30rqg9AEqZIk5c9AABN. 问:如何也使Apache代理WebSockets?

3
如何集成nodeJS + Socket.IO和PHP?
我最近一直在寻找,以找到一种在nodeJS和PHP之间进行通信的好方法。这里是一个想法:nodeJS还是一个相当新的东西,仅使用它开发一个完整的应用程序可能有点棘手。而且,您可能只需要项目的一个模块(例如实时通知,聊天等),而您想使用PHP来管理所有其他内容,因为它对您来说可能更容易(而且您可以利用现有框架,例如CodeIgniter或Symfony)。 我想有一个简单的解决方案; 我不想使用cURL或第三方服务器在Apache和Node服务器之间进行通信。我想要的是能够在客户端的简单Javascript中捕获来自节点的事件。 我没有找到完整的答案,大多数情况下客户端都是由节点服务器运行的,因此不适用于我的情况。因此,我检索了所有可能的主题,最后找到了答案;我将尽力分享这一点,并提出一个明确的观点。 希望这可以帮助一些人!;)

3
io.sockets.emit和广播之间有什么区别?
io.sockets.emit和socket.broadcast.emit有什么区别?广播只是向每个人发出但发送它的套接字吗? 似乎它们可以互换使用: io.sockets.on('connection', function (socket) { //these should do the same thing io.sockets.emit('this', { receivers: 'everyone'}); socket.broadcast.emit('this', { receivers: 'everyone but socket'}); //emits to everyone but socket socket.emit('this', { receivers: 'socket'}); //emits to socket });

6
如何使用socket.io向特定客户端发送消息
我从socket.io + node.js开始,我知道如何在本地发送消息和广播socket.broadcast.emit()功能:-所有连接的客户端都收到相同的消息。 现在,我想知道如何向特定客户端发送私人消息,我的意思是一个套接字,用于2个人之间的私人聊天(客户端到客户端流)。谢谢。

8
在Express 4和express-generator的/ bin / www中使用socket.io
所以这是交易:我正在尝试在一个快速项目中使用socket.io。发布Express Js 4之后,我更新了express-generator,现在应用程序的初始功能进入了./bin/www文件,包括那些var(www文件内容:http : //jsfiddle.net/avMa5/) var server = app.listen(app.get('port'), function() {..} (检查通过npm install -g express-generator,然后express myApp 话虽这么说,让我们记住socket.io文档如何要求我们将其触发: var app = require('express').createServer(); var io = require('socket.io')(app); 好的,但是我无法像推荐的那样在app.js中执行此操作。为了正常工作,这应该在./bin/www中完成。在./bin/www中,这是我可以做的事情: var io = require('socket.io')(server) 好的,这行得通,但是我不能在其他任何地方使用io var,我真的不想将我的socket.io函数放在www文件中。 我想这只是基本语法,但我什至无法使用它,甚至不能在www文件上使用module.exports = server或server.exports = servermodule.exports.io = app(io) 因此,问题是:如何使用具有该/ bin / www文件的socket.io作为我的应用程序的起点?

6
如何与Socket.IO 1.x和Express 4.x共享会话?
如何与Socket.io 1.0和Express 4.x共享会话?我使用Redis商店,但我认为这没有关系。我知道我必须使用中间件来查看cookie和获取会话,但不知道如何。我搜索了但找不到任何工作 var RedisStore = connectRedis(expressSession); var session = expressSession({ store: new RedisStore({ client: redisClient }), secret: mysecret, saveUninitialized: true, resave: true }); app.use(session); io.use(function(socket, next) { var handshake = socket.handshake; if (handshake.headers.cookie) { var str = handshake.headers.cookie; next(); } else { next(new Error('Missing Cookies')); } });

4
Socket.IO处理断开事件
无法处理此断开事件,不知道为什么套接字未发送给客户端/客户端没有响应! 服务器 io.sockets.on('connection', function (socket) { socket.on('NewPlayer', function(data1) { online = online + 1; console.log('Online players : ' + online); console.log('New player connected : ' + data1); Players[data1] = data1; console.log(Players); }); socket.on('DelPlayer', function(data) { delete Players[data]; console.log(Players); console.log('Adios' + data); }); socket.on('disconnect', function () { socket.emit('disconnected'); online = online …


13
Socket.io客户端:用一个处理程序响应所有事件?
是否有可能让socket.io客户端响应所有事件而无需单独指定每个事件? 例如,如下所示(显然现在不起作用): var socket = io.connect("http://myserver"); socket.on("*", function(){ // listen to any and all events that are emitted from the // socket.io back-end server, and handle them here. // is this possible? how can i do this? }); 我希望在客户端socket.io代码收到任何/所有事件时调用此回调函数。 这可能吗?怎么样?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.