PHP Jabber:如果我登录并检查消息并断开连接,则在其他用户端,我将显示为已断开连接

我不确定我所做的事情是否绝对正确.但是这里:

>用户通过基于Web的界面登录聊天
>通过Comet通知用户更新
>用户输入详细信息,该文件转到进一步连接到Jabber服务器的PHP文件

现在的问题是,当用户想要发送消息时,它很简单,运行php,我连接到jabber服务器并发送消息.当我在等待消息时出现问题.因为如果我登录并检查消息并断开连接,在其他用户端,我将显示为断开连接.

我是以错误的方式解决这个问题吗?我应该直接连接到Jabber服务器(通过javascript)而不是之间的PHP层吗?如何通过PHP接收消息?

解决方法:

这是一个固有的问题(或功能)与http – 没有持久的连接(不是真的).你需要一个解决方法,没有真正的解决方案.

你可以用java或flash来做,但那不是很好(javascript 4tw!).

另一种可能性是创建一个中间客户端,将浏览器和网络服务器之间的连接转换为网络服务器和jabber服务器之间的连接.凌乱,但可能.

或者可能有一个API可以帮助解决这个问题.

通过javascript直接连接到jabber服务器
我可能已经睡过了最新的ajax发明,但是你只能与source-html文件来自的主机进行通信(忽略greasmonkey和addons).没有不同的域,没有不同的端口,期间.除非你要教你的jabber服务器如何将你的chatpage-html提供给浏览器,否则会出现问题.此外,保持联系甚至不起作用,因为这需要多部分响应.那些只有mozilla支持,这就是为什么丑小鸭COMET甚至首先存在.彗星本身是一种解决方法,可以避免在传输数据时无法保持连接.

上一篇:如何在PHP代码中插入表情符号?


下一篇:Python:查看矩阵大小,查看列表大小