首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用html按钮创建动态socket.join(socket.room

如何使用html按钮创建动态socket.join(socket.room
EN

Stack Overflow用户
提问于 2018-07-02 00:54:34
回答 1查看 50关注 0票数 0

假设我们在HTML中有3个按钮,但具有相同的ID

<button id="id1"> John </button>
<button id="id1"> Peter </button>
<button id="id1"> williams </button>

这是我的socket.io脚本(客户端)

 $(document).on("click", "id1", function() {
  var ButtonText = $(this).text();
  var logged_in_userName ="i am using this application";
  var currentRoom = logged_in_userName + "-" + ButtonText;
  var reverseRoom = ButtonText + "-" + logged_in_userName;

//event to set room and join.
  socket.emit('set-room', {
  name1: currentRoom,
  name2: reverseRoom
  });
  });

服务器端脚本

socket.on('set-room', function (room) {
        //setting room and join.
        setRoom = function (roomId) {
            socket.room = roomId;
            socket.join(socket.room);
        };
    });

我的场景是:

如果我单击按钮1,则需要对john执行socket.join(),对其他按钮也执行相同操作,并使用其各自的名称

EN

回答 1

Stack Overflow用户

发布于 2018-07-02 09:53:29

现在还不完全清楚您希望加入的房间名称是什么,但您做错了几件事。首先,您在事件处理程序中定义了一个函数,但从未调用过该函数。那么,您没有正确地访问与set-room消息一起发送的数据。

如果reverseRoom属性是您希望新加入的房间的属性,则将您的服务器代码更改为:

socket.on('set-room', function (data) {
    // since socket.room only stores one room name, I assume you want to leave
    // any prior room before overwriting that property
    if (socket.room) {
        socket.leave(socket.room);
    }
    socket.join(data.reverseRoom);
    socket.room = data.reverseRoom;
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51125236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档