![]() | 1 zzNucker 2014-08-01 17:25:17 +08:00 ![]() comet / push /persistent connection |
![]() | 2 arbipher 2014-08-01 17:32:15 +08:00 你想知道有没有人给打你电话? 一种方式是定期看手机有没有来电提示(通过AJAX定期向数据库发送GET请求), 另一种更直观的方法是,听电话铃有没有响(不要笑……),你的耳朵时时刻刻在做这个工作。 你的耳朵和电话之间建立起“长连接”,“铃声”就是电话通过这个长连接推送给你的“消息”,你收到“消息”后再去看手机,到底是谁来电,是接电话还是装死。。。 简单的长连接可以通过WebSocket实现,其实这个问题之前我也是在v2ex问的(http://v2ex.com/t/103113#reply3) |
![]() | 3 xiparos OP |
6 em70 201-08-01 17:55:59 +08:00 消息数据库加个已读标记字段,默认为0,定期监听未读消息,发现有未读就推送给用户,阅读后修改标记为1 网页消息只能定期监听,没其他办法 |
![]() | 7 cloudzhou 2014-08-01 17:57:22 +08:00 如果要求及时性不那么高,简单的 ajax 按照时间轮讯就可以了,比如每一分钟。 最好使用类似 redis 来做这种状态的保存。 |
8 hcy 2014-08-01 18:04:09 +08:00 简单地消息提醒还是用Server-sent Events这个好点。这个用php实现起来很简单. 不过只支持html5 https://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events |
![]() | 9 xiparos OP 刚才看了一下这个: http://stackoverflow.com/questions/603201/using-comet-with-php 感觉PHP语言本身对于Comet的支持就不是很好,只能作为client端开发用。server端的话还得用Python,Nodejs这样的语言来实现Comet或者Websocket。 |
13 alvin2ye 2014-08-01 21:32:07 +08:00 |
![]() | 14 Jelen 2014-08-01 22:43:00 +08:00 |