(Akka 2.6.5,Akka-http 10.1.12)
我在服务器的每端都使用Source.queue
和Sink.actorRef
进行服务器/客户端的网络套接字设置。
事实证明,我的系统存在一个相当关键且出乎意料的缺陷(在生产环境中同样存在):
Sink.actorRef
中配置)-由于actor确实已死亡,该消息也以无效字母记录。所以我们有一个完整的Web套接字流吗?这就是Half-closed websockets会说的(尽管注意到标题ID是“ half-closed- client -websockets ...”)
发生的事情是……什么都没有。连接的客户端保持连接状态-没有完整的消息或故障。
是否需要某种配置来主动告诉akka在发生此类故障时完全关闭Http?
我在综合测试中转载了该问题:
Aborting tcp connection ... because of upstream failure: TcpIdleTimeoutException
在这个阶段,我故意不包括代码,因为我试图正确地理解该技术-我发现了一个错误,或者对Web套接字的含义有基本的误解工作(失败)。 如果您认为我应该包含代码,则需要说服我它可能如何帮助您创建答案
在生产中,无法关闭意味着Websocket客户端正在等待数据12个小时(当时未尝试发送消息)