【发布时间】:2013-05-26 08:46:33
【问题描述】:
我想实现一个实时消息功能,例如在 facebook 中聊天,但有几个问题让我感到困惑:
1.为了减少服务器的开销,让它真正“实时”,我应该使用像socket这样的全双工通信方式而不是Ajax,对吗?
2.如果我使用socket,我应该选择哪种协议,TCP还是UDP?
3. 假设我使用 TCP,服务器会一直尝试重新发送丢失的包,这样会花费很多开销吗?
4. 如果网络在服务器和客户端之间通信失败怎么办?套接字会自行关闭还是我应该处理几种网络条件?
有人可以帮忙吗?
【问题讨论】:
-
我建议您尝试 TCP 并找出答案。您可能正在尝试解决对您来说不是问题的问题。 :)
-
我只是不知道如何处理不同的网络条件。谢谢你的建议,我会努力的。 :)
-
几乎所有错误都会导致 IOException。如果您尝试从连接中读取(),您将能够检测到连接已关闭。