惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

AI
AI
TaoSecurity Blog
TaoSecurity Blog
H
Heimdal Security Blog
Help Net Security
Help Net Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Microsoft Azure Blog
Microsoft Azure Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Google DeepMind News
Google DeepMind News
爱范儿
爱范儿
The Cloudflare Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
N
News | PayPal Newsroom
V2EX - 技术
V2EX - 技术
博客园 - 【当耐特】
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Secure Thoughts
C
CERT Recently Published Vulnerability Notes
罗磊的独立博客
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Privacy & Cybersecurity Law Blog
有赞技术团队
有赞技术团队
S
Schneier on Security
S
SegmentFault 最新的问题
Google Online Security Blog
Google Online Security Blog
H
Hacker News: Front Page
The Last Watchdog
The Last Watchdog
Schneier on Security
Schneier on Security
PCI Perspectives
PCI Perspectives
IT之家
IT之家
Project Zero
Project Zero
博客园 - 司徒正美
P
Privacy International News Feed
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Jina AI
Jina AI
Security Latest
Security Latest
Hacker News - Newest:
Hacker News - Newest: "LLM"
腾讯CDC
C
CXSECURITY Database RSS Feed - CXSecurity.com
阮一峰的网络日志
阮一峰的网络日志
C
Check Point Blog
aimingoo的专栏
aimingoo的专栏
V
Vulnerabilities – Threatpost
W
WeLiveSecurity
NISL@THU
NISL@THU
Webroot Blog
Webroot Blog
N
Netflix TechBlog - Medium
L
Lohrmann on Cybersecurity

WebSocket

如果有多个 websocket 业务需求,一般情况下后端是建立一个还是多个 websocket 更好? - V2EX webSocket 在项目运动过程中 可以时不时重新连接吗? - V2EX websocket 下载文件的原理是啥? - V2EX websocket 如何投递消息到 http - V2EX 麻烦问个 Java websocket 的性能优化问题(比较基础) - V2EX 请教一下 websocket 实现发图片的方案和保存聊天记录的方案; - V2EX 问些 websocket 的问题 - V2EX websocket 的 ping/pong 标准是需要服务器主动发 ping? - V2EX 请教, websockets 模块起服务, websockets.serve 的方法问题。 - V2EX WebSocket 频繁爆出异常 - V2EX 问一个 websockets 的问题 - V2EX Java 中 websocket 中 session 长久保持打开状态 - V2EX 使用 gevent 作为 Websocket 服务端,浏览器上用 setInterval 定时重复建立 Websocket,结果导致 gevent 不会自动释放之前废弃的连接,内存快要溢出了。怎么自动回收废弃连接呢 - V2EX websocket 在 springsecurity 下结合 jwt 的问题 - V2EX sync-player:使用 websocket 实现异地同步播放视频 - V2EX Websocket 直播间聊天室教程 - GoEasy 快速实现聊天室 - V2EX Uniapp 使用 GoEasy 实现 websocket 实时通讯 - V2EX 搭建 websocket 消息推送服务,必须要考虑的几个问题 - V2EX 最近在看 websocket 的聊天室功能,有个小疑问 - V2EX
[有偿] 原生 app 开发即时通讯 关于 websocket 长链接的问题 - V2EX
rcj6056 · 2023-10-26 · via WebSocket

这是一个创建于 962 天前的主题,其中的信息可能已经有所发展或是发生改变。

目前通过 httpclien.webSocketClient 来实现 websocket 的建链 通过 DefaultClientWebSocketSession 来接受服务端推送的消息 session.incoming.receive()

目前问题是 当 app 退出到后台 锁屏一段时间之后 app 被冻结了 再次打开 app 就会出现 Exception: java.net.SocketTimeoutException: timeout Exception: kotlinx.coroutines.channels.ClosedReceiveChannelException: Channel was closed 类似的异常

想请问这种情况怎么处理

ps 提供思路并解决的老哥有红包感谢:D

bmwh123

1

bmwh123      2023 年 10 月 26 日

有的国产安卓系统,会禁止长时间运行的应用 service,可能需要把你测试的 app 的安全设置或者自启管理之类的设置一下,还有就是可以使用两个服务互相调用的方式去保活

NessajCN

2

NessajCN      2023 年 10 月 26 日 via Android

每次从冻结回来肯定要 new 个新 socket client 对象啊,哪能还用之前那个

herbertzz

3

herbertzz      2023 年 10 月 26 日

断线自动尝试重连。
如果有状态数据要恢复,就加入会话机制;初次建立连接的时候,服务端发送会话 token 给客户端保存;重连时,尝试使用会话 token 恢复状态

tool2d

4

tool2d      2023 年 10 月 26 日

手机锁屏 websocket 不是常规状态嘛,客户端重连一下就可以了啊。

rcj6056

5

rcj6056      2023 年 10 月 26 日

@bmwh123 项目启动了一个前台进程 在通知栏会有一个小图标 表示 app 还存活着
但是停留后台超过一定时间就会报 socket 的异常

JackCh3ng

6

JackCh3ng      2023 年 10 月 26 日

app 电池管理选择不优化,然后锁定后台。
一般像你这种需求是要上消息推送服务的。

okakuyang

7

okakuyang      2023 年 10 月 26 日 via iPhone

这就是安卓后台保活吧,我觉得基本无解。可以看看是不是省电模式或者手机优化程序干的。

JackCh3ng

8

JackCh3ng      2023 年 10 月 26 日

现在的安卓系统对于应用后台长期存在的 service 会在通知中心显式的提醒用户,这应该是安卓的隐私保护策略。然后还有个电池优化管理,会清掉后台不用的 app ,这会导致 app 的一些功能异常。我不是专业的安卓开发,这些是我之前写一个计时器 app 时遇到的问题,我是通过电池优化管理选择不优化来解决的。

coderxy

9

coderxy      2023 年 10 月 26 日

保活别想了,老老实实做好重连就行了。

lty81372860

12

lty81372860      2023 年 10 月 26 日

IM 应用就接各大手机厂的官方推送服务吧,国内各家魔改的系统对于微信这种大体量应用是有白名单的,当然也不对外开放,所以想达到效果就接推送好了。

lty81372860

13

lty81372860      2023 年 10 月 26 日

实际你可以了解下商用的那些 IM SDK 是怎么保证效果的,最后殊途同归,都是调官方推送服务+调优过的长连接策略

gowas

14

gowas      2023 年 10 月 26 日

整个错误抑制 要有断线重连

lty81372860

15

lty81372860      2023 年 10 月 26 日

之前微信技术团队分享过一个他们对于长连接的调优文章,具体可以去他们公众号搜搜。

babyrjw

16

babyrjw      2023 年 10 月 26 日

感觉部分网络的 NAT 会不定期淘汰 NAT 表,淘汰后这 socket 就没用了,关键是 tcp 的中断检测也麻烦,发一条数据等超时才知道断开。 我以前遇到过在某一次心跳之后服务器发送数据到客户端失败,两边抓包发现客户端和服务器都会偶发性该问题,切换网络就正常

xiaoming61

17

xiaoming61      2023 年 10 月 26 日 via Android

断线重连必须要有,光有前台服务不够。一些国产系统会在应用后台时禁止联网。

weeei

18

weeei      2023 年 10 月 26 日

退到后台就主动关闭长连接。切到前台重新连接。后台接收消息主要靠系统级别的推送。

ifbluethen

19

ifbluethen      2023 年 10 月 27 日

前司用 uniapp 开发 MQTT 应用也是这个问题,最后只能销毁原有的,再新建重连。

hez2010

20

hez2010      2023 年 10 月 28 日

开发即时通讯的推送消息难道不应该走平台的统一推送吗。。
Google 服务虽然被墙了但是 FCM 可没有被墙。