草庐IT

socket_handle

全部标签

javascript - Socket io Nodejs-在用户打开多个选项卡时进行管理

我正在尝试在我的应用程序中进行聊天,但我遇到了一个不知道如何解决的问题!这是塞纳里奥:我们有很多经过身份验证的用户,所以他们都有一个唯一的ID,我想实现像Facebook这样的聊天,这样每两个用户就可以互相聊天。为此,我有一个包含内容的server.js文件:varapp=require('express')();varserver=require('http').Server(app);vario=require('socket.io')(server);varredis=require('redis');varusers=[];server.listen(8890);io.on('

php - 使用 PHP Sessions 进行私有(private)聊天(PHP + Socket.io)

我正在开发一个使用php+socket.io的私有(private)消息系统的网站。从一开始我就使用socket.emit将sender_id、recipient_id和text传递给socket.io但后来意识到这很容易被篡改,并想以某种方式使用我的phpsession来确保sender_id确实是sender_id。我现在有以下设置,但我真的不明白如何将session从index.php传递到app.js,然后连接到app.js中的redis-server以获取包含user_id的PHPSESSID。服务器1运行nginx+php-fpm(index.php)服务器2使用socke

node.js - 如何实现 Laravel、node.js、socket.io 和 redis 以使用数据库创建实时聊天/通知

我已经花了3天时间阅读、观看有关WebSockets、socket.io、node.js等的教程。基本上,我是一名Laravel开发人员,对所有其余组件只有一个基本概念。遗憾的是,在这3天之后,我并没有想到实现这个架构的所有逻辑步骤。我将尝试解释我的理解,请您纠正我。所以:WebSockets-是客户端和服务器之间的双向连续连接。它使用了另一个端口,基本上它不是HTTP/S连接。要像我说的那样制作这种应用程序,我们还需要一台服务器,我知道为什么,但这是Node.js。在这个Node.js服务器上,我们应该安装socket.io(服务器端包)和Redis。然后,我们需要添加客户端sock

node.js - 如何在多个服务器上扩展 socket.io 应用程序?

我已经阅读了很多关于custering、redis的资料,但我找不到任何真实的示例。我有一个简单的socket.io应用程序,我需要将此应用程序扩展到许多服务器。看起来socket.io和RedisStore是解决方案。有没有人有关于他如何在许多服务器上使用socket.io的真实世界摘要? 最佳答案 您需要npminstall包socket.io-redis。然后通过命令redis-server启动服务器。将以下行添加到您的代码中。vario=require('socket.io')(3000);varredis=require(

javascript - 使用 socket node.js 检测用户切换页面

当用户转到网站内的其他页面时,我正在尝试取消订阅Redischannel。当用户单击链接但事件从未触发时,我尝试检测断开连接套接字事件。//Dothingsreq.socket.on("disconnect",function(){console.log("Disconnected");conexion.punsubscribe();});你知道我可以使用什么套接字事件来捕捉这个Action吗?谢谢。 最佳答案 用户断开连接在socket.io中并不那么简单,如下所述:Tellserverthatuserisnomoreoninte

node.js - 在这种情况下,Redis 是单点故障吗(Redis、Node.JS、Socket.IO)?

我使用Redis是因为它允许我水平扩展我的应用程序(多个服务器)。通过使用它的发布订阅功能,我的所有服务器都可以相互通信而无需共享内存。到目前为止,很酷!我们可以添加更多的nodejs服务器,但是所有这些服务器都订阅了一个单独的Redis服务器。所以我们有很多NodeJs服务器与一个Redis服务器通信的情况,我们可以服务更多的客户端,但我们仍然只有一个Redis。根据我的测试,Redis服务器使用的资源较少,因此可以处理更多资源,但我认为在这个设计中仍然是SPF。你怎么看?设计可扩展系统的最佳方法是什么?我知道主/从Redis,但我仍然不确定它是否是最佳解决方案。

javascript - 将 redis 与 socket.io 一起使用 - 如何为每个客户端更新?

我将socket.io和Redis与node.js一起使用-下面的代码。我在这里绝对是愚蠢的,但我不明白为什么Redis事件只在第一个连接的用户时触发。对于每个打开页面的用户,我再次看到NEWCONNECTION控制台消息,但我只看到第一个用户的REDIS控制台消息。io=io.listen(app);client.flushall();io.sockets.on('connection',function(socket){//UpdateRediswithinformationaboutthisconnection.console.log('***************NEWCON

node.js - 使用 Redis 和 Socket.io 在 Laravel 5.2 中进行事件广播

我将Laravel5.1更新到5.2,事件不再广播。我正在将Laravelhomestead与php7和hhvm、Node5.3.0、Redis3.0.6一起使用。Redis运行良好。(我试过Redis::publish)。我触发了事件,但没有收到任何消息。事件类namespaceApp\Events;useApp\Events\Event;useIlluminate\Queue\SerializesModels;useIlluminate\Contracts\Broadcasting\ShouldBroadcast;classUserSignedUpextendsEventimple

node.js - 有人可以提供一个我需要使用 socket.io-redis 的示例情况吗?

来自socket.io文档[http://socket.io/docs/rooms-and-namespaces/#sending-messages-from-the-outside-world]我阅读了以下内容,但似乎无法将其与我脑海中的任何用例联系起来:Sendingmessagesfromtheoutside-worldInsomecases,youmightwanttoemiteventstosocketsinSocket.IOnamespaces/roomsfromoutsidethecontextofyourSocket.IOprocesses.There’sseveral

javascript - node.js/socket.io 消失变量

在我的应用程序中,我有以下内容:client.on('test',function(req,fn){varreturnArr=[];redis.hkeys(req,function(err,replies){replies.forEach(function(reply,i){if(reply.indexOf('list.')>-1){redis.hgetall(reply.substring(5),function(err,r){returnArr.push({name:r['name'],index:i});console.log(returnArr);});}});console.