有大量的socket.io“如何”创建最简单的聊天室,但我没有发现任何东西显示如何将其用于更高级的聊天室。
我从头到尾创建了一个聊天系统(使用php/mysql/ajax),具有以下特点:
问题是,我创建的系统并不具有很强的可伸缩性,因为它使用的是短轮询技术,如果我有太多的在线用户,就有可能使服务器崩溃。显然,使用socket.io可以解决这个问题,但它意味着在服务器端和客户端使用从a到Z的javascript (我不是javascript开发人员,只是javascript用户)。
我在学习新东西方面没有问题,但网络上的大量教程显示如何使用socket.io进行聊天,仅限于极简主义者的教程(连接、写入、阅读,仅此而已),这对于一开始很好,但对于更有雄心的项目却没有多大用处。
它还连接到,使用socket.io时,数据库已不在画面中,但如何相应地重新考虑您的系统(永久存储用户及其个人信息,检索消息历史,过滤所有先前的消息,显示用户连接自己时的15条先前消息,在每个房间中仍然可以访问所有您希望访问的先前消息,从一个私人房间来回切换到主公共房间,等等)。在没有数据库的情况下,我甚至在纸上也想不出如何实现这一切,而且我在任何地方都找不到这方面的任何东西。
我不希望找到我的php高级聊天室的现有soket.io版本,这不是我要找的。我正在寻找全面的教程(免费与否),为我提供使用socket.io创建具有上述功能的系统所需的所有背景知识。
我已经在网上搜索了两天了,我仍然不知道如何超越最简单的聊天系统。我知道如何写东西,并把它推给所有的用户浏览器,让他们阅读它。它很整洁,但是现在呢?
有什么参考或建议吗?
谢谢(为我糟糕的英语道歉)。
PS:我试着使用"socket.io“和”教程“标记,但是即使它们存在,出于任何原因,我也不允许使用它们.
发布于 2012-04-20 08:18:57
如果你需要一个高级教程基于节点的聊天。检查一下这个:
Nodechat.js继续-身份验证、配置文件、小马和更普通的socket.io
这是Node.js和Socket.Js建立在BackBone.Js上的。
发布于 2012-04-17 12:31:22
为了获得更好的可伸缩聊天系统,您是否尝试过Meteor (www.meteor.com)。它是建立在Node.Js之上的,并且很容易连接到MongoDB。
IMHO,这是创建实时web应用程序的最佳方法.
发布于 2013-05-08 11:19:28
http://udidu.blogspot.co.il/2012/11/chat-evolution-nodejs-and-socketio.html
这是一个非常好的教程,即将与那些可以创建/加入/离开聊天室并相互交谈的用户一起构建一个应用程序。您可以对此进行扩展,并赋予房间的创建者“权限”,将其标记为"admin“,然后理论上他可以向服务器发出管理命令,例如”静音用户“、”禁止用户“、”删除特定消息“等等。这非常简单,因为您所要做的就是从客户端监听这些消息,然后在服务器上运行。
因此,如果某个用户在服务器上被标记为"Admin“,然后让我们说,他想删除聊天室中某人的消息,那么您可以在服务器上这样做:(粗略示例)
...
io.sockets.on('connection', function (socket){
socket.on('deleteMessage', messages.delete );
});
var messages = {
save : function(msg){
// saves a message to the DB (which is sorted by rooms)
},
remove: function(user, data){
// check if the 'user' is either an Admin or the person who wrote that message
...
// if it's either one of them, then find that message in the DB, then
// remove it, and update all clients' sockets.
socket.emit('messageRemoved', data);
},
add: function(msg){
// update all clients with current message
},
...(more methods)
}https://stackoverflow.com/questions/10191249
复制相似问题