erlang ssl和{ssl_closed,Socket}

时间:2012-08-24 12:40:24

标签: erlang

我有两个erlang节点在两台不同的计算机上运行,​​在一个节点中我有一个ssl客户端,另一个节点我有ssl服务器。两台计算机都通过wifi连接连接到Internet。

一切正常,但我想知道为什么如果我在客户端笔记本电脑中关闭wifi,我就不会收到{ssl_closed,Socket}消息。

套接字选项是:

{active, true}, {keepalive, true}

我的意思是,套接字不应再有效了......好吗?

1 个答案:

答案 0 :(得分:3)

全局TCP keepalive超时值通常设置为keepalive消息之间的7200秒之间的值。如果您使用的是Linux系统,可以使用sysctl -a | grep keepalive进行检查。

由于它是全局配置,因此不建议使用此值。相反,您应该向应用程序级协议添加ping消息(让客户端偶尔发送ping),服务器可以简单地丢弃它。

似乎可以通过inet:setopts/2函数和raw选项设置每插槽保持活动超时,但我不知道是否推荐(在平台之间不可移植)