问题描述
我目前正在从事一个半小时的业余时间项目,以学习一些新技术。我的计划是创建一个聊天应用程序,客户端在WPF中构建,服务器端使用Java。
我很好奇的是,我应该采用哪种方法来发送和接收消息。我当前的想法是使用套接字连接登录用户,然后维护该连接以在用户收到消息时发送该用户通知。许多人的计算机上可能会运行这样的应用程序数小时,因此维护套接字连接不好吗?如果是这样,我还有其他方法可以代替吗?
解决方法
TCP套接字连接可以长时间保持打开状态,但最终会断开,例如,当重新配置连接两侧的网络接口,或者重新启动服务器或客户端软件时。
为检测破损,某些协议包括"heartbeat" mechanism。客户端和服务器定期交换一条消息,内容为“我还在这里,你在吗?” 如果客户端一段时间未收到服务器的心跳信号,则可以假定连接已断开,请尝试重新连接。