![]() |
1
46
与PHP/AJAX/JSON聊天我用这本书/教程编写了聊天应用程序: AJAX and PHP: Building Responsive Web Applications: Chapter 5: AJAX chat and JSON . 它展示了如何从头开始编写完整的聊天脚本。 基于Comet的聊天发件人: zeitoun : Comet允许web服务器向客户端发送数据,而不需要客户端请求数据。因此,这种技术将产生比经典AJAX更灵敏的应用程序。在经典AJAX应用程序中,web浏览器(客户端)无法实时通知服务器数据模型已更改。用户必须创建一个请求(例如,通过单击一个链接),或者必须定期执行AJAX请求,以便从服务器获取新数据。 我将向您展示用PHP实现Comet的两种方法。例如:
第一个在客户机上实时显示服务器日期,显示一个小聊天。 方法1:iframe+服务器时间戳你需要:
后端脚本(
前端脚本(
方法2:AJAX不返回请求
您需要与方法1中的相同+用于数据交换的文件(
现在,backend.php将做两件事:
前端脚本(
comet对象将在每次收到新消息和每次发布新消息时发送AJAX请求。持久连接仅用于监视新消息。timestamp url参数用于标识最后请求的消息,因此只有当“data.txt”时间戳比客户端时间戳更新时,服务器才会返回。
或者您还可以查看其他聊天应用程序,了解它们是如何做到的:
|
![]() |
2
5
投票不是个好主意。您需要一个使用长轮询或web套接字的解决方案。 http://hookbox.org 可能是你能用的最好的工具。 它是一个位于服务器和浏览器之间的框,管理称为通道(考虑IRC通道)的抽象。它是github上的开源: https://github.com/hookbox/hookbox 这个盒子是用Python编写的,但是它可以很容易地与用任何语言编写的服务器一起使用。它还附带了一个基于jsio的Javascript库(使用websockets、long polling或任何浏览器上可用的最佳技术),保证它使用浏览器中可用的最佳技术 实时聊天 用几行代码实现。 Hookbox的目的是简化实时Web应用程序的开发,重点是与现有Web技术紧密结合。简单地说,Hookbox是一个支持web的消息队列。浏览者可以直接连接到Hookbox,订阅命名频道,并在这些频道上实时发布和接收消息。外部应用程序(通常是web应用程序本身)也可以通过Hookbox REST接口将消息发布到频道。所有身份验证和授权都由外部web应用程序通过指定的“webhook”回调执行。
每当用户连接或操作频道时,(订阅、发布、取消订阅)Hookbox向web应用程序发出http请求,请求对该操作进行授权。一旦订阅了一个频道,用户的浏览器将通过javascript api接收来自另一个浏览器的实时事件,或者通过restapi接收来自web应用程序的实时事件。 他们的关键见解是,使用hookbox进行的所有应用程序开发都是以javascript或web应用程序本身的本地语言(例如PHP)进行的 您需要一个可以运行Python的服务器,但不必知道Python。 如果您只想使用websockets和PHP,这是一个很好的起点: http://blancer.com/tutorials/69066/start-using-html5-websockets-today/ |
![]() |
4
2
这可能是一个很好的起点 |
![]() |
5
2
我建议用HTML5 WebSockets实现它,用长轮询或comet作为旧浏览器的后备。WebSockets打开到浏览器的持久连接。 有一个开源的 php implementation of a websocket server . |
![]() |
6
1
我相信您所看到的问题需要使用comet web编程。你可以在维基百科上找到更多的细节,通过搜索彗星编程,以及在Ajax上(我仍然是这个网站的新手,我不能在响应中发布超过1个链接)。 问题是,在服务器端使用php很难做到这一点。更多细节: using comet with php 另外,如果你在google上搜索“php comet”,你会找到一个教程来达到你想要的效果。 以后编辑 使用此引擎实现了一个项目。太棒了。 希望能帮上忙, 加布里埃尔 |
![]() |
7
1
我知道已经很晚了,但是 here 编辑:更新的链接 |
![]() |
8
1
这看起来很有前途!甚至可以非常容易地重新设计风格:) Javascript/PHP中的Ajax聊天脚本说明
特征
*请注意,这是从 the original site . |
![]() |
9
0
我以前没用过PHP,但你最好是用某种socket连接。这是 PHP manual 用于插座。 我不记得是谁的教程,但我做了一个聊天室,就像你想要的那样,用Flash作为客户端,用Java作为服务器。我想 this link 可能是教程所在的地方,它可能会帮助你。 |
![]() |
Softly · 单选按钮未按预期取值 1 年前 |
|
SlickRed · 我无法使用JS关注HTML元素 1 年前 |
![]() |
assembler · Nextjs没有处理发布请求 1 年前 |
|
BADRUM · 执行两个获取功能后,如何导航回页面? 1 年前 |
![]() |
Toniq · javascript为php保存多维数组 1 年前 |