开发者社区> 问答> 正文

请教要如何实现类似新浪微博的网页私信推送功能

目前正在做一个社交网站 (Thinkphp+mysql), 我想当某些用户触发了一些条件的时候通知另外一些在线的用户,比如说:发私信、给对方送了一件小礼物
目前我想到唯一的方法是 :
把要发送的消息放进Redis,然后在Action这个基类做一个redis的查询,这样用户每进行一次操作都会去查这个Redis是否有内容。但是这样不太科学,属于是被动式查询。
请教一下各位都有什么好的方法,万分谢谢!

展开
收起
蛮大人123 2016-02-11 17:35:19 3126 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    这个绝对是你想要的,websocket+workerman实现的
    https://github.com/walkor/web-msg-sender
    demo:
    后台发送消息的页面:http://workerman.net:3333/
    用户接收消息的页面:http://workerman.net/web-msg-sender.html
    原理:用户打开页面后浏览器会自动向后端服务器发送一个websocket(浏览器支持HTML5或者Flash就可以)连接,后端hold住这些连接,当想推送消息给浏览器时,向这些websocket连接写数据即可。
    优点:
    非轮询,性能很高,普通的服务器即可维持上万的连接
    实时性好
    兼容各种浏览器包括ie6(客户端支持flash或者html5任意一个就行)

    2019-07-17 18:40:57
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
微信PaxosStore简介 立即下载
QQ移送页面框架优化实践 立即下载
QQ移动页面框架优化实践 立即下载

相关实验场景

更多