通过推送通知进行实时聊天

时间:2009-05-11 08:43:02

标签: instant-messaging

我正在为我的网站开发一个私有的混乱功能, 有没有办法从服务器获取推送通知,用户已收到新消息?

我所知道的唯一技术是不断通过ajax轮询服务器以查看是否有新消息,并在需要时重新加载信使窗口。

感谢任何反馈!

UPD:到目前为止,已经确定了以下方向:

1)Comet
2)BOSH - 双向流超过同步HTTP
3)XMPP - 谷歌谈话基于

4 个答案:

答案 0 :(得分:5)

您可能希望了解XMPP和BOSH。非常彗星和ejabberd结合nginx可以在一个非常小的盒子上保持1000个连接。

看看我的一个项目www.vooices.us,看看我们在XMPP和BOSH上做了些什么。

http://www.ejabberd.im/

http://github.com/ssoper/jquery-bosh/tree/master JQueryBosh - 通过HTTP快速轻松地访问XMPP

设置和安装相对容易。

保罗。

答案 1 :(得分:0)

服务器无法将信息推送到客户端,但您始终可以使用Comet。是的,你要轮询服务器,但不是经常。你要保持每个连接打开大约30秒(这是我经常看到的间隔),然后在需要时打开一个新连接。

编辑: Adob​​e Flash允许与服务器的持久连接,因此您可以使用它。有关详细信息,请参阅this article

答案 2 :(得分:0)

听起来像Comet可能链接到一些有用的东西(查看谷歌的GTalk):

http://alex.dojotoolkit.org/2006/02/what-else-is-burried-down-in-the-depths-of-googles-amazing-javascript/

答案 3 :(得分:0)

有很多好的图书馆可以帮助你做到这一点

XMPP - BOSH是我在我的网站上使用的一个很好的组合

XMPP服务器

Ejabberd,Openfire我使用ejabberd

你可以使用Strophe和Ejabberd在javascript中捕获通知。如果您想从代码发送通知

有像JAXL和XMPPHP这样的库可以让你这样做,但这是在PHP中。