对 IM 聊天工具 不是特别了解,不过想知道 如 telegram 微信客户端是如何保证与服务器通讯的呢? 特别是当手机客户端进程都被杀死的情况下。

2022-07-02 00:17:55 +08:00
 sciel
2664 次点击
所在节点    程序员
13 条回复
ljpCN
2022-07-02 01:11:28 +08:00
第一个问题是全双工通信协议,比如 Websocket 。第二个问题是操作系统提供的通知服务比如谷歌的 FCM ,或者自己在操作系统注册的一个常驻服务。
twing37
2022-07-02 01:23:34 +08:00
1. 长连接
2. 被杀后 ROM 接管. iOS 是 APNs 推送.国内是各大厂商的辅助通道(加白).
mxT52CRuqR6o5
2022-07-02 02:45:36 +08:00
国行小米,telegram 被杀后并不能保证与服务器的通讯
realpg
2022-07-02 05:11:19 +08:00
@mxT52CRuqR6o5 #3
国行小米,感觉永远杀不掉 telegram
Achophiark
2022-07-02 08:54:56 +08:00
一直对加密聊天有兴趣,先后尝试了 mattermost 、rocket.chat 、delta.chat 、synology chat 、还有一些其他的,都是不通知,一下就搞不动了,被强的不是一点。
AllenHua
2022-07-02 09:19:39 +08:00
@Achophiark #5 mattermost iOS 是通知的,只能说 android 那边环境是很差的,被封的差不多了
Achophiark
2022-07-02 09:38:57 +08:00
后来决定搞个小范围即时聊天,只要私有部署就行了, 探索中
sciel
2022-07-02 09:44:30 +08:00
@ljpCN 想更近一步了解向操作系统注册常驻服务,请问有相关资料么,或者是否有已写好的工具或框架呢?谢谢啦~😄
sciel
2022-07-02 09:50:03 +08:00
@Achophiark 探索如何?如何向操作系统注册常驻服务呢?
kongkx
2022-07-02 09:53:56 +08:00
运行的时候,长连接,或者 websocket 。进程杀死了,只能依赖系统 APN 之类的服务。只是从系统消息唤起的时候,应用内要做一次数据同步。
crayygy
2022-07-02 10:49:18 +08:00
我没记错的话,telegram 的 Android 代码里有一个 AlwaysAlive 的 service ,被杀掉它又能默默起来,所以大概能解释上面说的为什么小米永远杀不掉吧..
Achophiark
2022-07-02 11:07:25 +08:00
@sciel 你的问题暂未知,我的探索最后看中了 jisti meet 先试试
ljpCN
2022-07-03 23:21:48 +08:00
@sciel 我也不是安卓开发,不过简单搜索到这样一篇文章( https://www.jianshu.com/p/805ca3c2f06d ),也许你可以从里面的关键词去拓展搜索。相信市面上也已经有成熟的库可以使用了,甚至我猜测应该有不仅提供客户端 sdk 还提供服务端的 saas 服务可以使用。

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

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

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

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

© 2021 V2EX