如何使用Jquery / PHP实现聊天室?
我正在寻找使用PHP / Javascript(Jquery)实现聊天室,同时具有群聊和私聊功能。
问题是如何以自然的方式不断更新界面,以及如何在私人聊天中显示“X正在输入...”消息。
显而易见的方式似乎是每隔x秒/毫秒javascript ping服务器并在最后一次ping和现在之间获取新消息列表。然而,这可能会使界面看起来有点不自然,如果突然聊天室充斥着5条消息。我希望每条消息都会在输入时显示。
有没有办法使javascript保持与服务器的连续连接,服务器将任何新消息推送到此连接,并且javascript将它们添加到接口,以便它们同时出现,几乎在服务器收到它们之后?
我知道有一些轮询选项需要你安装一些apache模块等,但我很糟糕的系统管理员,因此我更喜欢在共享主机帐户或php上有一个非常容易安装的解决方案/ mysql唯一的解决方案。
没有找到相关结果
已邀请:
10 个回复
宦哨抹存胳
使用服务器时间戳 基于经典的AJAX非返回请求 第一个在客户端上实时显示服务器日期,显示迷你聊天。 方法1:iframe +服务器时间戳 你需要: 一个后端PHP脚本来处理持久的http请求
一个frondend HTML脚本加载Javascript代码
原型JS库,但你也可以使用jQuery 后端脚本(
)将执行无限循环,并且只要客户端连接就会返回服务器时间。
前端脚本(
)创建一个“彗星”javascript对象,它将后端脚本连接到时间容器标记。
方法2:AJAX非返回请求 您需要与方法1相同+数据交换文件(
) 现在,backend.php将做两件事: 发送新消息时写入“data.txt” 只要“data.txt”文件不变,就执行无限循环
前端脚本(
)创建
标签帽子将包含来自“data.txt”文件的聊天消息,最后它创建一个“彗星”javascript对象,它将调用后端脚本以便观察新的聊天消息。 每次收到新消息时以及每次发布新消息时,comet对象都将发送AJAX请求。持久连接仅用于监视新消息。 timestamp url参数用于标识上次请求的消息,以便仅当“data.txt”时间戳比客户端时间戳更新时,服务器才会返回。
另外 您还可以查看其他聊天应用程序,了解他们是如何做到的: http://hot-things.net/?q=blite - BlaB! Lite是基于AJAX的,可以通过支持MySQL,SQLite和Linux的任何浏览器聊天系统获得最佳浏览效果。 PostgreSQL数据库。 Gmail / Facebook风格jQuery聊天 - 这个jQuery聊天模块使您可以将Gmail / Facebook风格的聊天无缝集成到现有网站中。 编写JavaScript / PHP聊天服务器 - 教程 CometChat - CometChat在标准共享服务器上运行。只需要PHP + mySQL。
遣莫捅炭
荒劫娇噬
芯伶句餐绕
拟僚疽刊剔
讼乐
貉骂
净爽
嘘崇蔡对
催备南菠亨