Real-time chat with push notification

倖福魔咒の 提交于 2019-11-30 11:41:38

问题


I am working on a private messasing functionality for my site, is there a way to get push notifications from the server, that the user has received a new message?

the only technique I know is to constantly poll the server via ajax to see if there are new messages, and reload the messenger window if needed.

thanks for any feedback!

UPD: so far the following directions have been identified:

1) Comet
2) BOSH - Bidirectional-streams Over Synchronous HTTP
3) XMPP - this is what google talk is based on


回答1:


You might want to look into XMPP and BOSH. Very comet like and ejabberd combined with nginx can maintain 1000's of connections on a very small box.

Take a look at one of my projects www.vooices.us to see what we have done with XMPP and BOSH.

http://www.ejabberd.im/

http://github.com/ssoper/jquery-bosh/tree/master JQueryBosh - to enable quick and easy access to XMPP over HTTP

It is relativly easy to set up and install.

Paul.




回答2:


There isn't any way for the server to push information to the client, but you could always use Comet. Yes, you'd be polling the server, but not constantly. You'd keep each connection open for about 30 seconds (that's the interval I've always seen used) and then open a new connection when needed.

EDIT: Adobe Flash allows persistent connections to the server, so you could use that. See this article for details.




回答3:


Sounds like the Comet probably links to some useful stuff (Look into Google's GTalk):

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




回答4:


There are a lot of good libraries that help you to do this

XMPP - BOSH is a good combination which I use on my websites

XMPP servers

Ejabberd, Openfire I use ejabberd

You can use Strophe along with Ejabberd to capture notifications in javascript. If you want to send notifications from code

There are libraries like JAXL and XMPPHP that let you do this, but this is in PHP.



来源:https://stackoverflow.com/questions/847227/real-time-chat-with-push-notification

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!