使用php和javascript创建实时聊天

时间:2017-06-14 17:45:18

标签: javascript php mysql chat comet

我的目标是从头开始创建类似于Facebook聊天的实时聊天。我想将所有消息存储在数据库表(MySQL)上,并且每次用户发送新消息时,如果接收器已连接,则请求将被发送到接收器'浏览器和消息将出现在聊天窗口中。

我不想让客户端检查是否发送了针对用户的新消息,但是我希望服务器将请求发送到客户端的浏览器

我知道这可以使用 Comet技术(我看到this stackoverflow question)来实现,但我无法找到关于如何针对这个问题实现此问题的良好指南。

我想使用php和javascript以及尽可能少的额外软件或框架。

我使用WAMPServer,我有Windows。

如果您知道一本好的指南或教程,或者可以提供有关如何实现我想要的任何指导,那将非常有帮助。

5 个答案:

答案 0 :(得分:2)

尝试使用此CppComet开源彗星服务器。 php和其他语言都有api。 viwe chat examplethis

答案 1 :(得分:2)

是的,可以做到!我已经开发了使用没有任何外部新框架/ API的实时消息传递系统,只使用已知和熟悉的技能来开发它:Ajax jquery,PHP,Mysql,Javascript。这是我的Github链接: https://github.com/07harish/Real-time-chat-system ..我刚刚上传了主文件。要了解它,请仔细阅读代码。 使用的逻辑是:

  1. 所有消息都将存储在数据库中,
  2. 加载页面时,将从数据库加载所有邮件。
  3. 重新加载后收到新邮件时,新邮件必须是 加载/显示没有重新加载整个页面对吗?这个完成了 使用javaScript和ajax jquery。我已经设定了每0.5秒的时间 重新加载新邮件并显示它们。
  4. 在我的代码中,首先当页面加载所有消息时将加载div 标记每个,稍后每当新消息进入db时它将显示为新的 div标签。它简单,无需任何外部API。
  5. 要刷新新消息并将它们放入div标签。来自ajax jquery的.load(), 刷新每0.5秒Javascript用于设置超时。

答案 2 :(得分:0)

我不知道您的确切问题是什么,但 Websockets 就是答案!

https://github.com/crossbario/autobahn-js

https://github.com/voryx/Thruway

(仅供参考,当您在websockets的上下文中看到WAMP时,他们正在讨论的事情不是windows / apache / mysql / php)

答案 3 :(得分:0)

您还可以将Node.JS与PHP结合使用。 Creating a Real-Time Chat App with PHP and Node.js

答案 4 :(得分:0)

不幸的是,您无法使用PHP本身创建实时应用程序,您可以在PHP中使用Laravel这样的框架,并使用laravel-websockets这样的包来创建实时应用程序。 laravel-websockets对于创建实时应用程序非常有用。 laravel和带有任何前端的laravel websokcets都可以做到

http://beyondco.de/docs/laravel-websockets

https://laravel.com/docs/

您可以轻松创建任何内容,只需尝试了解websokcets的基本概念即可。