站内消息的客户端解决方案

2019-09-06 09:55:45 +08:00
 hhh798
我在做一个内容产品,现在考虑实现站内消息功能,比如别人对你的文章点赞了、评论了、或者评论被管理员删除了或者别人给你发私信了了,那么要在 APP 端即时显示消息提醒,一般是采取什么解决方案呢?客户端轮询查看有没有新消息吗?
3019 次点击
所在节点    程序员
20 条回复
TypeErrorNone
2019-09-06 10:10:29 +08:00
轮询请求,这个请求只做 app 的状态查询。
可以针对这个接口单独部署几台服务器,支撑个几万 qps 没问题。
salamanderMH
2019-09-06 10:12:14 +08:00
websocket,你看看 https://segmentfault.com/ ,它就是这么做的
hhh798
2019-09-06 10:20:20 +08:00
@TypeErrorNone 刚开始就一台服务器支撑所有服务,感觉轮询有点傻傻的
@salamanderMH 有没有文章啊
ssynhtn
2019-09-06 10:23:11 +08:00
轮询你就等着被卸载吧
crysislinux
2019-09-06 10:29:10 +08:00
我在想这个东西到底该不该对匿名用户实现,websocket 连接太多了压力也不小。
hhh798
2019-09-06 10:30:31 +08:00
@ssynhtn @crysislinux 那行业内的解决方案一般是啥呢
xiangyuecn
2019-09-06 10:30:54 +08:00
这不就是推送咩。简单的用第三方,把 ios、华为、oppovivo 的自家推送集成一下 就 ok 了。

即时?惊呆了,app 活着就即时吧,死了就离线推
hhh798
2019-09-06 10:38:11 +08:00
@xiangyuecn 不是 push,是站内消息
zqwcrystal
2019-09-06 11:23:35 +08:00
可以用静默推送实现,客户端监听到推送之后做请求
mshadow
2019-09-06 11:25:46 +08:00
@nioncodotcom 也是用 push
nvioue
2019-09-06 11:38:52 +08:00
push 加 pull 结合
niubee1
2019-09-06 11:50:12 +08:00
现在很多浏览器都支持推送服务
Takamine
2019-09-06 12:31:35 +08:00
轮询着被卸载+1。
一般在几个交互逻辑里触发站内信消息推送就好吧。
crayygy
2019-09-06 12:35:11 +08:00
push 收到以后做区分,前后台单独处理即可
Raymon111111
2019-09-06 12:37:21 +08:00
怎么可能是轮询...

消息队列+push
finab
2019-09-06 12:40:25 +08:00
客户端做一个 Pull 操作,触发可以取请求未读消息

然后定义一些场景,触发这些场景就去 做 Pull 操作
例如打开 APP、重新进入 APP、进入消息页面、收到新消息推送 ... 等等

我觉得又不是聊天,用不上实时,能保证用户能看到就行
opengps
2019-09-06 13:08:49 +08:00
所有推送类应用:要么轮训,要么 tcp 长连接
xd314697475
2019-09-06 16:18:24 +08:00
websocket 或者使用第三方推送,eg.极光推送
Macolor21
2019-09-06 17:32:07 +08:00
websocket
laravel
2019-09-06 18:01:35 +08:00
mqtt

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/598435

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX