Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在哪里可以找到用于多室聊天的soket.io高级教程?_Database_Sockets_Client Server_Chat - Fatal编程技术网

Database 在哪里可以找到用于多室聊天的soket.io高级教程?

Database 在哪里可以找到用于多室聊天的soket.io高级教程?,database,sockets,client-server,chat,Database,Sockets,Client Server,Chat,有很多socket.io“how to”可以创建最简单的聊天室,但我没有发现任何关于如何将其用于更高级聊天室的内容 我从零开始创建了一个聊天系统(使用php/mysql/ajax),具有以下特点: 高级会员管理(登录、头像、个人信息、存储的专用伪码等) 用户可以加入现有聊天室或创建新聊天室 可以在每个公共聊天室内创建私人聊天室,以便与任何人私下交谈 通过根据成员的伪地址和/或IP地址驱逐成员、删除特定消息等方式管理和调节每个聊天室的可能性 等等 问题是,我创建的系统不具有很强的可伸缩性,因为

有很多socket.io“how to”可以创建最简单的聊天室,但我没有发现任何关于如何将其用于更高级聊天室的内容

我从零开始创建了一个聊天系统(使用php/mysql/ajax),具有以下特点:

  • 高级会员管理(登录、头像、个人信息、存储的专用伪码等)
  • 用户可以加入现有聊天室或创建新聊天室
  • 可以在每个公共聊天室内创建私人聊天室,以便与任何人私下交谈
  • 通过根据成员的伪地址和/或IP地址驱逐成员、删除特定消息等方式管理和调节每个聊天室的可能性
  • 等等
问题是,我创建的系统不具有很强的可伸缩性,因为它使用的是短轮询技术,如果有太多用户在线,可能会导致服务器崩溃。 显然,使用socket.io可以解决这个问题,但这意味着在服务器端和客户端都要从a到Z使用javascript(我不是javascript开发人员,只是javascript用户)

我在学习新事物方面没有问题,但是网上的大量教程向您展示了如何使用socket.io进行聊天,这些教程仅限于非常简单的内容(连接、写入、读取,仅此而已),这对于一个开始来说很好,但对于一个更雄心勃勃的项目来说并不十分有用

它还指出,使用socket.io时,数据库是不存在的,但如何相应地重新思考您的系统(永久存储用户及其个人信息,检索消息历史记录,过滤所有以前的消息,在用户连接自己时显示15条以前的消息,从私人房间往返到主要的公共房间,同时仍然可以访问每个房间上您希望访问的所有以前的消息,等等)。 在没有数据库的情况下,我甚至在纸面上也不知道如何实现这一切,我在任何地方都找不到这方面的任何东西

我不希望找到我的php高级聊天室的现有soket.io版本,这不是我要找的。我要找的是综合教程(免费或不免费),提供使用socket.io创建具有上述功能的系统所需的所有背景知识

我已经在网上搜索了两天,但我仍然不知道如何超越最简单的聊天系统。我知道如何编写一些东西,并将其推送到所有用户的浏览器上让他们阅读。它很整洁,但现在呢

有任何参考或建议吗

谢谢你(对我糟糕的英语感到抱歉)


PS:我尝试使用“socket.io”和“tutorials”标记,但即使它们存在,出于任何原因,我也不允许使用它们…

为了更好地扩展聊天系统,您是否尝试过Meteor。它构建在Node.Js上,可以轻松连接到MongoDB


IMHO,这是创建实时web应用程序的最佳选择。

如果您需要关于基于节点的聊天的高级教程,请检查以下内容:

它是构建在BackBone.js上的Node.js和Socket.js。

这是一个非常好的教程,介绍了如何构建一个应用程序,用户可以创建/加入/离开聊天室并相互交谈。你可以扩展这个应用程序,给聊天室的创建者“权限”,将他标记为“admin”,然后理论上他可以向服务器发出admin命令,例如“静音用户”、“禁止用户”、“删除某条消息”等等。这很简单,因为您所要做的就是从客户端侦听这些消息,然后在服务器上执行操作

因此,如果某个用户在服务器上被标记为“Admin”,然后他想删除聊天室中某人的消息,那么您可以在服务器上执行以下操作:(粗略示例)


谢谢Chaithaya。我真的不在乎使用什么,只要它解决了可伸缩性问题,对一个业余开发人员来说是可以访问的,最重要的是,它有适合我上述需求的教程(见我上面的帖子)。我会看一看你的链接。谢谢。我很抱歉chaithanya。Meteor可能比socket.io更好,但我真的不知道,但它给我带来了同样的问题(“让你最简单的聊天系统在3分钟内运行”综合症)在线教程更少。在这3分钟之后,我陷入了困境。这似乎没有那么复杂,但所有这些套接字管理系统都假设用户足够先进,可以获得10行代码和API参考指南等所有内容。对于像我这样的人来说,这是一个空白,我找不到任何教程来填补。上面的链接已断开,但她的e是git-repo链接,如果有人正在阅读代码,这可能会有所帮助。
...
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)
}