我想用php& amp做一个聊天应用程序jQuery的。但是客户端可见的jquery脚本和另一个问题是每次都需要通过调用interval方法来更新聊天显示面板。所以我的问题是,有没有其他方法来开发像gmail聊天应用程序的聊天应用程序。 Becouze gmail聊天显示存在。当用户离线时自动显示离线状态。当用户在聊天框中输入文字时,立即显示在聊天显示中。所以我想做那个应用程序。
请指导我......
感谢你,
答案 0 :(得分:4)
您可以使用WebSockets执行此操作。有一些很酷的WebSockets工具,如:
使用WebSockets,您可以将收到的消息附加到聊天记录中,而不是像看起来那样更新整个内容。
如果您选择(或必须)不断向服务器请求新邮件,因为并非所有托管服务提供商都允许使用WebSockets,以下是一些您可能会发现有助于改进聊天应用的提示:
将最后收到的消息ID存储在客户端,这样当您向服务器请求新消息时,您可以向其发送此ID,它只会向您发送您尚未收到的消息,从而避免不必要的流量。
在服务器端,记录客户端上次请求新消息的时间,以便您可以定义超时以检测用户是否断开连接。
为了避免服务器或客户端的请求超出其处理能力,请考虑服务器在您定义下一个请求的时间间隔时回答上一个请求所花费的时间,如下所示: p>
答案 1 :(得分:2)
为了在不轮询的情况下实时更新状态和消息,您需要使用websocket连接。
这是一个使用Applozic jquery chat plugin建立聊天的jsfiddle,它使用websocket。
https://jsfiddle.net/devashishmamgain/L68teL67/
(function(d, m){var s, h;
s = document.createElement("script");
s.type = "text/javascript";
s.async=true;
s.src="https://apps.applozic.com/sidebox.app";
h=document.getElementsByTagName('head')[0];
h.appendChild(s);
window.applozic=m;
m.init=function(t){m._globals=t;}})(document, window.applozic || {});
window.applozic.init({userId: 'devashish', appId: 'f769902edce1e93b6d03a1d5f', desktopNotification: true, notificationIconLink: "https://www.applozic.com/resources/images/applozic_logo.gif"});
答案 2 :(得分:1)
请看下面的问题..
Javascript based XMPP chatclient using strophe js - Examples and tutorials?
您可以在以下工作github代码中使用 stropher js for XMPP protocol 找到与聊天相关的要求。
https://github.com/metajack/profxmpp
查看chap:06演示(GAB Tut)。
它将满足您与
相关的所有要求开始一对一聊天......
所有重要的演示也包括
请告诉我您在此演示中有任何疑问。 :):)
答案 3 :(得分:0)
如果您使用PHP从服务器端获取数据,那么您需要定期轮询并检查新消息。这会在服务器端产生不必要的负载,并且证明难以扩展,因为即使没有新消息我们也会继续轮询。
这个问题可以通过使用像websocket这样的推送技术而不是轮询来解决。我们的产品ChatCamp使用推送技术实时传递消息,并且高效且可扩展。您可以使用我们的ChatCamp JavaScript SDK快速创建jQuery聊天应用程序 - https://chatcamp.io/blog/jquery-chat/。