【问题标题】:Web Chat Application using Long-Polling Technology with PHP,MySQL and jQuery [closed]使用长轮询技术和 PHP、MySQL 和 jQuery 的网络聊天应用程序 [关闭]
【发布时间】:2014-10-30 05:34:24
【问题描述】:

我们在公司使用了一个聊天系统,它是用 Ajax、PHP 和 jQuery 构建的。目前它在管理端和用户端每秒刷新一次以从 mysql 中提取数据。这使系统效率低下且速度较慢。

我只想在用户或管理员发送消息时从 mysql 中提取数据。但问题是:我将如何从管理员端检查用户发送消息(实时)? 是否可以在 Ajax 中同时实时发送数据/请求 2 个不同的 PHP 页面?这可能是一个解决方案。

或者有什么想法可以制作高效的聊天系统吗?我们不想使用任何第三方聊天解决方案。任何想法/帮助将不胜感激。

谢谢,
雷乔努尔·阿拉姆

【问题讨论】:

  • 服务器无法在不询问的情况下开始向您的浏览器发送数据!不知何故,你已经向你的服务器发送了一个请求!
  • 只需使用this。它完整​​、可靠、免费且易于定制。
  • 我建议你检查 websockets。
  • 我不确定你的提议是个好主意,如果用户聊了一会儿,然后又AFK了一会儿,他们将不会收到任何进一步的回复,直到他们发送消息.或者,当他们发送消息时,会收到他们不在时进行的大量对话。
  • 你应该看看 websockets

标签: php jquery mysql long-polling


【解决方案1】:

jQuery 长轮询

使用长轮询的 jQuery/PHP/MySQL 可以做到这一点。此网址中提供了一个示例实现:http://sugunan.com/sites/chat/chatterFront.html

在两个不同的浏览器或机器中打开它。并提供姓名并开始聊天。

这个聊天工具的源代码可以在这个网址下载: http://www.sugunan.com/sites/chat/source.zip

Node.js

如果您拥有服务器,则可以选择基于 node.js faye 的实现:http://faye.jcoglan.com/node.html

这是一种推送通知技术。所以它不会经常ping服务器。但它会立即传递信息。如果你想在服务器上持久化消息,它可以与 PHP 集成。

【讨论】:

  • 感谢您的回答。有没有 jQuery 解决方案呢?我的意思是在不同的页面中实时执行代码。
  • 我已经用 jQuery 工作解决方案编辑了答案。如果您对该功能没问题,请告诉我,我将分享代码。 sugunan.com/sites/chat/chatterFront.html
  • 感谢@guru。您的 jQuery 聊天系统运行良好。但是那里正在运行一个连续的 ajax 请求。这会使系统变慢吗?无论如何,我想看看源代码。你能帮我分享一下代码吗?
  • @Rejoanul:那个源代码对你有用吗?
  • 这非常有用。谢谢@大师。我正在尝试使用长轮询,但我正在查看您的代码。它对我的项目有帮助。
【解决方案2】:

是的,有一些方法,
它们被称为彗星,有时是反向ajax,谷歌它;)

在共享主机上使用长轮询,
在专用主机或 VPS 上使用套接字。

【讨论】:

  • 感谢您的回答。我在看……
猜你喜欢
  • 2012-11-06
  • 2011-07-15
  • 2014-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-21
  • 2014-10-19
相关资源
最近更新 更多