微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-使用共享池的在线聊天

在进行在线聊天时,我需要帮助.我已经创建了一个简单的在线聊天,其中一个用户可以与另一个用户进行通信,并且他们的对话另存为json文件. json文件是我每隔2秒使用setInterval()重新加载的文件.用户发送的消息通过使用ajax并通过PHP函数fopen和fwrite(append)发布而附加在json文件上.

我的问题是我的ajax上的发送/发布过程太慢.用户需要花费一些时间才能在聊天屏幕(div)上看到他/她的消息已发送.我尝试将消息添加到屏幕上看起来好像已经发送了,但是问题是当setInterval重新加载聊天屏幕并且新添加的消息尚未保存在json文件上时,新发送的消息将不包含在重新加载.

问题:

>如何更快地添加新消息?
>当用户键入和发送消息太快时,如何在ajax上对多个帖子进行排队?
PS:他们是创建在线聊天的更好方法吗?我读到我在聊天中使用池化,更好的方法是使用套接字,但我不知道如何使用它.您是否有更好的方法或更好的逻辑?

解决方法:

要考虑的几点:

->搜索长投票(COMET)

->为什么setInterval刷新屏幕,它应该只附加来自服务器的新消息

->如果您使用的是基于HTML5的浏览器,请检查Websockets和服务器端事件.

->在服务器端使用数据库操作,而不是文件操作.考虑到1000个不同的用户彼此聊天的情况,这也将提高可维护性,将很难维护那些文件.

->服务器应该发送新的增量消息,而不仅仅是将整个对话再次发送给客户端以进行解析和重新加载.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐