redis - socketio join 不会创建空间,但在发布消息时有效
问题描述
我正在为 redis 客户端使用 netty socketio 和 reddison。我已将 redis 配置为与 netty socketio 作为 pubsub 和保存会话存储一起使用。
现在我使用下面的代码在 redis 中创建了一个带有 netty socketio 的房间。使用他们的电子邮件为客户创建特定队列。
@OnEvent(value = "join")
public void onJoin(SocketIOClient client, AckRequest request, JSONObject jsonObject) {
logger.info("message :" + jsonObject);
client.joinRoom(jsonObject.getString("email"));
}
现在我可以使用以下代码向该特定用户发送数据
socketIOServer.getRoomOperations("user1@example.com").sendEvent("new_msg", "{\"msg\": \"hello\"}");
whereuser1@example.com
被用作房间名称以在初始代码中加入房间。
如果我使用下面的代码,我会收到事件。
socket.on("new_msg", function(data) {
console.log("room data: ", data);
});
但是现在如果查看 redis 中的 pubsub 频道,我会看到这一点。
我没有看到user1@example.com
这里的频道。这里到底发生了什么?有人可以对此提供一些见解。
解决方案
推荐阅读
- laravel - 理解雄辩的一对多关系
- amazon-web-services - AWS Elastic Beanstalk 通过 .ebextensions 设置根卷
- makefile - 在不同的目录中创建相同的工作流程
- html - Chrome 和输入日期
- r - 在 R 中计算 rowNorms 的更有效方法?
- python - Python pandas to_sql 违反外键约束
- mysql - 需要验证我的 SQL 查询是否正确
- python - 如何将python中的输出保存到.txt文件
- python - 无法使用 Pyspark 写入数据文件?
- c# - C# SetValues,EntityState.Modified 不起作用