草庐IT

WSA_IO_PENDING

全部标签

node.js - 将 redis pubsub 消息转发到 express 中的特定 socket.io 客户端

在我的express服务器中,我使用的是socket.io和Redispubsub。服务端订阅一个Redis消息channel,当有人通过Redis发布新消息时,将Redis消息转发给特定的websocket客户端。根据我从socket.io和Redis文档中读到的内容,我可以使用变量socket向特定客户端发送消息并调用socket.broadcast.to(mySocketID).emit。但在下面的代码中,如果我想向redis订阅者内部的mySocketID发送消息,我该怎么办,这超出了io.on('connection')的范围?varredis=require('redis'

node.js - Socket.IO 重复消息

我正在尝试使用Laravel以及Nodejs服务器、socketio和redis构建聊天应用程序。我所拥有的是:客户端JS:varsocket=io('http://localhost:3005');varroom='17';$("#send").click(function(){content=$("textarea").val();id=$("#id").val();$.ajax({url:"{{route('send.message')}}",method:"POST",data:{content,id,room},success:function(){}});});socket

node.js - Node、Socket.io 和 Redis - 多个实例

我对在Heroku上使用多个dyno运行Node以及如何跨实例访问socket.io/redis感到困惑。我正在使用socket.io0.9.16。(1)首先,当我在Heroku中扩展到两个dynos时,这是否意味着两个Node实例?(2)其次,当我像这样创建一个io实例时:vario=require('socket.io').listen(server);然后当第二个node实例被创建时,第二个io实例被创建-是这样吗?(3)使用redis的原因是创建一个可供所有实例访问的单一存储-对吗?但是,当我像这样为io创建一个新的rediststore时:varioRedisStore=re

.net - 使用 redis.io 存储对象

我正在开发一个Windows服务器应用程序,其主要功能是存储对象数据(可能来自序列化对象或jsons、xmls或二进制文件)并以非常快速的方式检索它们。我读到很多人都在推荐redis.io,而且stackexchange具有必要的绑定(bind)这一事实让我想走这条路。问题是我不知道如何得出“键”值以便将特定数据存储在数据库中。我应该求助于散列值作为关键吗?还是我可以在redis.io中使用自动创建的key?谢谢。 最佳答案 是的,Redis可用于对象缓存和StackExchange'sRedisclientforC#效果很好。一些

c - hiredis 报错 1 REDIS_ERR_IO 没有那个文件或目录

redisAsyncConnectUnix()返回一个err=1的redisAsyncContext(notNULL)即REDIS_ERR_IOwitherrstr"Nosuchfileordirectory",他们在寻找什么文件/目录?Redis已启动并正在运行,能够从redis-cli进行设置 最佳答案 redisAsyncConnectUnix用于使用UnixDomainSocket连接到服务器,它由一个伪文件具体化。此文件的路径必须作为参数提供:redisAsyncContext*redisAsyncConnectUnix(

javascript - Node.js | Express.js | Redis.io - 处理顺序

对于我的项目,我使用Node.js和express.js以及redis.io作为数据库。现在我有一个带有查询参数的获取资源。它应该给我持有特定书籍的图书馆的ID。但是我不明白我的程序的处理顺序。正如您在下面的代码中看到的,我将库数组打印3次到控制台。varexpress=require('express');varbodyParser=require('body-parser');varredis=require('redis');vardb=redis.createClient();varjsonParser=bodyParser.json();varapp=express();ap

sockets - Socket.io:用户是否可以更改收听 channel ?

所以我开始使用Redis和Socket.io向客户端广播事件。我在后端使用Laravel,并将利用它们的事件功能。根据用户的访问级别,我只希望他们收听某些channel。我想我可以动态设置他们将收听的channel,但我担心他们是否可以使用调试工具或排序来更改他们正在收听的channel。例如,也许页面会在“channel-100”上加载监听,但是他们可以更改代码以使其可以监听任何其他channel,例如“channel-110”吗? 最佳答案 我不确定我是否可以专门针对Socket.io提供帮助,但我可以告诉您我们是如何在我们的实

node.js - 我无法使用 socket.io 发送聊天消息

我以前可以发送消息,但我按照本教程使用redis与express和socket.io共享了passport的sessionhttp://www.scotthasbrouck.com/blog/2016/3/18/passportjs-express-session-with-sockeio现在我无法再发送任何聊天消息。此外,在我的路由中,req.isAuthenticated()总是返回false,但我以前没有遇到过这个问题。这是我的server.js。//server.js//setup=================================================

Homestead 上的 Laravel-echo-server 和 socket.io 得到 TypeError : Cannot read property 'socketId' and 'presenceChannel'

我正在尝试在homestead上使用laravel5.4、laravel-echo、redis和socket-io创建一个实时聊天应用程序。请检查下面的代码,然后检查我的问题ChatConversation事件:classChatConversationimplementsShouldBroadcast{useDispatchable,InteractsWithSockets,SerializesModels;public$message;public$user;/***Createaneweventinstance.**@returnvoid*/publicfunction__con

typescript - socket.io-redis typescript 错误

我试过像这样使用@types/socket.io-redis:import{ServerasHttpServer}from'http';importsocketIo,{Socket}from'socket.io';importredis,{RedisAdapter}from'socket.io-redis';exportdefaultfunctionsetupWebsocket(server:HttpServer){constio=socketIo().listen(server);io.adapter(redis(process.env.REDIS_URL));constadapte