当前位置: 首页 > 知识库问答 >
问题:

Socket. IO实时聊天

慕容聪
2023-03-14

我正在用插座找一个指定的房间。io,但其给出的错误为“未定义房间”。下面是我的代码。谁能帮忙吗?或者解释什么问题

io.on('connection', (socket) => {

socket.on('join', ({name, room}, callback ) => {
    console.log(name, room);
    const {error, user} = addUser({id: socket.id, name, room});
    if(error) return callback(error);

    //greeting message for user when joins room
    socket.emit('message', {user: 'admin', text: `${user.name}, welcome to the room ${user.room}`});
    //greet message to everyone in room that user has joined
    socket.broadcast.to(user.room).emit('message', {user: 'admin', text : `${user.name} has joined.`});

    socket.join(user.room);//puts user in room
    callback();

});
socket.on('sendMessage', (message, callback) => {

    const user = getUser(socket.id);// get user by id 

    io.to(user.room).emit('message', {user: user.name, text: message});
    callback();
});


socket.on('disconnect', () => {
    console.log('User have left!!');
})

});

共有1个答案

禄星腾
2023-03-14

你的问题来自客户端。服务器没问题。前端没有发送用户输入的房间。过来看。

 类似资料:
  • 我是一个网络开发的初学者。最近,我一直在开发一个完全基于PHP和JS/jQuery的实时聊天网站(我没有使用任何框架)。目前,我的设置只是简单的AJAX轮询,这显然没有我希望的那么好。我的数据库是MYSQL数据库。 我读过关于WebSocket的书,我最初的新计划是用Socket创建一个NodeJS服务器。io将处理消息(如何集成nodeJS Socket.io和PHP?),我考虑将这些消息存储在

  • 问题内容: 我想为我的项目构建一个实时聊天系统,但实际上我在使用Redis时遇到了一些问题,因为我希望尽可能地更好地存储数据。 我的问题: 我想使用Socket Io在一个封闭的小组(两个人)中进行实时聊天,但是如何存储消息呢? Redis是一个键值存储,这意味着如果我要存储某些内容,则需要在存储之前向数据添加唯一键。 如果同一用户发布多个消息,那么我将在redis中使用哪些键?我正在考虑将唯一I

  • 问题内容: 我的聊天应用程序遇到问题,我需要能够向特定用户发送私人消息,我可以选择该特定用户,但由于某些原因无法弄清楚如何发送私人消息。 在下面,您将找到我服务器的代码,请提供帮助: 问题答案: 首先在聊天室中添加用户,以便在您的私人聊天室中轻松找到用户 您用于加入私人会议室的客户端代码 Join Room 您在客户端的JavaScript代码 } 您的服务器端代码以在您的房间中添加用户 });

  • 本文向大家介绍基于Nodejs利用socket.io实现多人聊天室,包括了基于Nodejs利用socket.io实现多人聊天室的使用技巧和注意事项,需要的朋友参考一下 socket.io简介 在Html5中存在着这样的一个新特性,引入了websocket,关于websocket的内部实现原理可以看这篇文章,这篇文章讲述了websocket无到有,根据协议,分析数据帧的头,进行构建websocket

  • 许多项目使用互联网多线交谈(IRC)提供实时聊天室,作为用户和开发者互相提问并得到及时答复的讨论场所。即使你可以在你的服务器运行IRC服务器时,也不必为此事麻烦。而应该象其他人一样:在Freenode(http://freenode.net/)运行你的IRC频道。Freenode给了你足够的权利来管理你项目的IRC频道,[17]可以让你摆脱维护IRC服务器这类无意义的麻烦。 首先要选择一个频道名称

  • 本文向大家介绍vue + socket.io实现一个简易聊天室示例代码,包括了vue + socket.io实现一个简易聊天室示例代码的使用技巧和注意事项,需要的朋友参考一下 vue + vuex + elementUi + socket.io实现一个简易的在线聊天室,提高自己在对vue系列在项目中应用的深度。因为学会一个库或者框架容易,但要结合项目使用一个库或框架就不是那么容易了。功能虽然不多,