我目前正在构建一个类似 facebook 的聊天框,并且在此过程中遇到了一些注意事项和问题。
我一直在谷歌上搜索有用的资源,比如简单的聊天框示例或在线教程。
我的目标是像 facebook/gmail 聊天框和CometChat一样构建一个,我知道在幕后进行扩展很难而且太多,但我想做的就是尽可能简单地构建它,并弄清楚 facebook/gmail 如何chatbox 实现了他们的聊天功能。
进步:
我已经完成了类似 facebook 的聊天框结构,右侧边栏显示我可以聊天的在线朋友,并在底部弹出聊天框,它能够扩展和最小化它。
我也完成了基于 MySQL 数据库的简单聊天。有一个表格,有 4 列 'sender'、'receiver'、'message'、'time' 用于存储对话。我的聊天框是这样工作的:
1.用户发送消息,我的前端javascript会获取用户输入的消息并通过Ajax将消息发送到服务器上的php文件。2.后端的php文件会将此消息存储到MySQL。3.如果接收者向发送者发送消息,前端将每3秒调用一次更新函数更新聊天框内容,并显示在前端的聊天中。
我不确定这是一个很好的方法,而且还有很长的路要走,我真的很担心。如果用户不断增长,我必须想办法很好地扩展它,否则我的数据库和服务器会爆炸,前端用户可能会在更新对话时感到高延迟。
如果您有数百万在线用户,那么 BigTable 是正确的方法吗?
facebook 如何在后台很好地存储客户的短信或聊天记录?像 Whatapp 这样的聊天应用程序如何存储他们的短信?是否可以让用户直接与另一个用户聊天而不在服务器中存储状态?
如果我想在我的聊天框中实现聊天历史功能,有什么好方法?我认为服务器可以为其文件系统中的每个对话创建 .txt 文件,并且它有一个数据库表列来存储文件路径。这是处理聊天记录的好方法和正确方法吗,我知道可以这样做,但我不确定它是正确方法还是好方法。
我知道这可能是一个庞大而详细的应用程序。我问的不是一个详细的实现,而是一个大图,构建它的概念!
谢谢你!。