现在需要在 client 和 server 间做心跳检测,常见的方法是 server 提供一个方法, client 每隔一定时间去 call 一下,看返回状态,如果正常返回则说明成功。
但是,假设我现在不能在 server 提供这个方法,我只能用 socket 去检测 server 是否还活着, 那么现在我用的是每次创建一个 socket ,然后发送 socket.sendUrgentData(0xff); 没报错我就认为 server 活着。
我想问一下, 1 、如果每次都创建一个新的 socket ,性能有多大消耗?会不会每次都占用 server 的连接数活着端口? 2 、大家一般这种情况下的心跳是怎么做的? 3 、如果维持一个长连接的 socket ,即设置 keepliave 为 true ,但是会报错 Broken pipe at java.net.PlainSocketImpl.socketSendUrgentData
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.