首页 > 解决方案 > 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这里的频道。这里到底发生了什么?有人可以对此提供一些见解。

标签: redissocket.ionetty-socketioreddison

解决方案


推荐阅读