Tag: 聊天室

套接字将消息发送给房间中的用户

我正在使用nodejs和socketio。 我做了一个私人聊天应用程序发送消息给选定的用户。 我目前的代码是: chat_room.sockets.socket(user).emit( 'chat', { message : message, from : sockets[socket.id].username } ); 现在我创build了房间,我想发送消息给特定房间的用户。 我尝试下面的代码,但不工作 socket.get('room', function(err, room) { chat_room.sockets.socket(room)(user).emit( 'chat', { message : message, from : sockets[socket.id].username } ); }); 它的错误,它给了我一个错误: C:\ Users \ Niraj \ Desktop \ node \ joomla-chat \ app.js:62 chat_room.sockets.socket(room)(user).emit(^ TypeError:object不是chat_room.sockets.on.socket的函数Client.get(C:\ Users \ Niraj \ Desktop \ node \ […]

高效的聊天室后端?

我目前正在试图find最好的方式来编写一个交互兼容的即时通讯聊天应用程序与iOS和Android。 这个想法是,用户注册到应用程序,然后随机聊天是1对1的应用程序内的其他用户随机配对。 就像上面提到的,我希望这是跨平台,但是我只是想让iOS开始,但是我希望能够将其扩展到android的未来。 主要的问题是我想创build一个可扩展的东西。 完成后,它应该能够无缝地支持100个用户,但至less可以select在未来进一步扩展。 我目前研究的是XMPP和NodeJS,我原本以为这些是为了更多的WhatsApp群聊应用程序,但是最近发现Tinders后端是NodeJS。 用户数据存储(注册信息,例如年龄,性别)将在mySQL和PHP中完成。 我也在想连接用户的PHP。 我原本是想写一个Web应用程序(HTML 5),然后用一个webView制作一个iOS应用程序,并简单地将应用程序链接到webView。 有人能指出我正确的方向吗? 婴儿床的笔记随机分配一对一的聊天(认为tinder没有联系人列表群聊等)能够缩放保持效率能够跨平台(Android后添加)

讨论:使用node.js / socket.io实现聊天室的最佳方式?

我不是在谈论一般的聊天应用程序,而是专门讨论聊天室的实现。 所以在node.js / socket.io中,我想到了两种方法 为每个聊天室创build一个数组,向数组中的所有用户广播消息 将所有消息广播给所有用户,在客户的PC上确定它们是否属于聊天室,如果是,则接受消息。 1中的弱点是,当你扩大规模时,你会用数组对象淹没服务器的内存,而在我的主机上只使用大约80mb。 2中的弱点是,最终广播给每个人都是昂贵的,而客户机器的泛滥也不会使他们感到高兴。 我相信在如何实现聊天室方面有更好的方法,所以这就是为什么我要求你们帮助我。 我在服务器端首先在客户端寻找性能,而且它必须是可伸缩的。

socket.io手动添加用户到空间(node.js)

我有一个私人工作的聊天应用程序。我的实现是: 1 – 用户进入另一个用户configuration文件页面并写入消息。 在此之后,我为这个对话创造了一个空间。 socket.join(data.user); 2 – 接收者用户将采取这个消息(只有这个用户),但我不知道我怎么可以join这个接收机用户到这个房间。 所以这是我的问题基本上。 我需要添加“手动”这个接收机用户到我的房间。 这样当我把消息广播到这个房间的时候,消息就会发出这两个用户(一个是匿名的,另一个是注册用户)。 它会提供我的一些代码。 server .on('connection', function(socket) { server.to(socket.id).emit('yourSocketId',{ socketid : socket.id,connectedDate : Date.now }); socket.on('AnonymousMessage', function(data) { if(data.isanon == true) { socket.join(data.user); server.to(data.user).emit('AnonymousBroadcast', { message: data.message, user: data.user, isanon : data.isanon, date : data.date, tabno : data.tabno }); } else { socket.join(****); //– I need […]