草庐IT

socket_desc

全部标签

node.js - Socket.io 分布在不同的服务器上

我想在3台不同的机器上设置socket.io服务器。我有一个负载均衡器设置用于在不同的服务器之间分配请求,但是我如何将我在socket.io的连接函数中获得的套接字对象分配到不同的服务器?我知道我们可以使用RedisStorepub/sub来发布和记录redis事件,但是假设我有一个连接到机器1的客户端A,如果我有一个连接到机器3的客户端B。客户端A将如何发送给客户B的消息?或者我可以使用socket.io中的其他架构来实现这一目标? 最佳答案 如评论中所述,套接字是两台不同机器(在本例中为客户端和服务器)之间的连接,因此无法共享。

node.js - Redis、Node.js 和 Socket.io 问题

刚开始学习redis和node.js,有两个问题找不到满意的答案。我的第一个问题是关于在node.js中重用redis客户端。我找到了这个问题和答案:Howtoreuseredisconnectioninsocket.io?,但它并没有让我足够满意。现在,如果我在连接事件中创建redis客户端,它将为每个连接生成。所以,如果我有2万个并发用户,就会有2万个redis客户端。如果我把它放在连接事件之外,它只会产生一次。答案是他在连接事件之外为每个函数创建了三个客户端。但是,根据我对MySQL的了解,当编写一个生成子进程并并行运行的应用程序时,您需要在创建子实例的函数中创建MySQL客户端

node.js - 在 Heroku 上使用集群和 socket.io-redis 扩展 node.js socket.io@1.*.*

有没有人知道在多个内核上扩展基于node.js-socket.io的应用程序的好解决方案?我目前正在测试socket.io文档中提供的解决方案,以在多个Node上使用socket.io,但没有取得具体的成功。我在github上为此创建了一个Playground:https://github.com/liviuignat/socket.io-clusters这是来自socket.io站点的聊天应用程序的稍微修改的副本。它使用express,cluster,socket.io@1.1.0和socket.io-redis.目前还有一个使用sticky-session的实现在分行feature

node.js - 使用 node.js、socket.io 和 redis 的一对一聊天应用程序

我目前在node.js和socket.io中有一个聊天应用程序(一对一)。随着我网站上的用户越来越多,我想在我的聊天应用程序中引入redis。这是我当前应用程序的一个小示例://allrequiresandconnectionsio.sockets.on('connection',function(socket){socket.on('message',function(msg){//codetogetreceiverssocketio.sockets.sockets[receiverssocket].emit('message',{"source":msg.sendersuserna

node.js - 带有 socket.io 和 expressjs 的 Node 集群

这是我的服务器代码:我正在尝试将集群与socket.io和expressjs一起使用。我正在我的四核台式机上对此进行测试。varcluster=require('cluster')varnumCPUs=require('os').cpus().lengthif(cluster.isMaster){//Forkworkers.for(vari=0;i有什么明显的错误吗?日志表明一切都发生了4次。这似乎是正确的。但是我的socket.io的channel用户还表示,每当我连接到一个页面时,我都会连接4次(创建4个用户套接字)。这似乎是错误的。我该如何修复它以及我的代码是否还有其他问题。谢谢

node.js - 没有使用这个基本的 socket.io + redis 设置接收事件?

我有一个使用socket.io-redis的简单socket.io服务器,一个socket.io-emitter,我运行了redis(这对我来说是全新的,我在Windows上,我下载了redis并打开redis-server.exe和redis-cli.exe)。通过带有命令monitor的redisCLI,我看到服务器已连接并且事件从发射器到达redis,但是test-server.js从未记录任何内容。我还需要做什么?socket.io服务器是否需要订阅redis?Redis输出"publish""socket.io#/#""\x93\xa7emitter\x83\xa4type\

node.js - 在多核服务器中将 socket.io 与集群一起使用的好方法?

我创建了一个在单核中运行良好的nodejs应用程序。此应用程序使用socket.io进行轻便快速的通信。现在,我想垂直扩展我的应用程序,通过使用nodejs中的cluster模块使其能够在多核系统上运行。我的应用程序中的所有内容都将数据存储在Redis中,因此,处理一些基本数据和session没有问题。但是,当我使用集群生成多个工作进程时,似乎每个工作进程都有自己的套接字处理。例如,假设有一个名为“客人”的聊天室。用户A和用户B连接到房间,他们被分发到不同的worker进程。由于它们在不同的进程中,并且这些进程不共享套接字监听器,因此用户A和用户B无法相互通信。解决这个问题的好方法是什

php - 在 PHP 中使用 Node.js、Socket.io、Redis 的私有(private)聊天消息

我正在为我的php应用程序开发一个实时私有(private)消息系统。我的代码适用于所有用户。但我需要私有(private)消息系统作为一对一的消息。在设置Node和redis之后,我可以获得我需要的消息数据:这是代码::前端::1.我使用一个表单-用户名、消息和发送按钮和通知JS:$(document).ready(function(){varsocket=io.connect('http://192.168.2.111:8890');socket.on('notification',function(data){varmessage=JSON.parse(data);$("#not

session - 如何使用 redis、express 和 socket.io 让 session 工作?

所以我试图让session在我的socket.on('connection',...)中工作我正在尝试使用最新版本让它工作:Socket.io-0.9.13、Express-3.1.0和其他模块的最新版本。无论如何我都尝试过使用这两个模块'connect-redis'和'session.socket.io'他们都有类似的问题。在我的代码中我有2个redis存储(socketio.RedisStore和require('connect-redis')(express)),现在这个程序都运行良好,但是因为express和socket.io需要共享session数据,我想知道此设置是否会正确

laravel - 想在 Laravel 中实现 web sockets

我想在Laravel中使用网络套接字实现网络通知。我有试过推杆。这很容易,但它是付费套餐。我还尝试过必须安装horizo​​n的redis和socket.io。我正在运行Windows,但根据我对horizo​​n的了解,我无法在Windows上安装它。所以我对推送通知很困惑。我尝试了至少一个星期,但还没有找到任何解决方案。我的前端是angluar5/android,后端是Laravel5.6。你能给我一些实现推送通知的好主意吗? 最佳答案 你一直在使用pusher,所以我假设你知道如何使用event。我推荐你laravel-ech