首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android -如何长时间与服务器保持连接

Android -如何长时间与服务器保持连接
EN

Stack Overflow用户
提问于 2012-03-25 19:22:31
回答 2查看 2.9K关注 0票数 3

我用SocketChannel为Android写了一个聊天应用。它成功地与服务器连接,所有功能都正常工作。但是在我登录很长一段时间后(大约2-3个小时),我再次尝试发送聊天消息,但失败了。在日志文件中,SocketChannel选择器仍处于打开状态并连接到服务器,消息已写入成功。有什么问题吗?我遗漏了什么?

提前感谢您的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-25 21:57:28

如果你想通过服务器推送为android或其他东西创建聊天,可以尝试使用MQTT

http://tokudu.com/2010/how-to-implement-push-notifications-for-android/

这是一件非常酷的事情,看看吧:-)

票数 0
EN

Stack Overflow用户

发布于 2014-02-14 15:24:46

我在SocketChannel上也遇到了同样的问题。我使用了基于SocketChannel的库从andoird应用程序连接到websocket (库是Autobahn websocket)。我可以成功地连接到web socket,并且可以通过websocket发送/接收消息。但过了一段时间(可能是30分钟、1小时或2小时后),websocket连接挂起。根据您的方案,日志似乎套接字连接仍然打开并连接到服务器,消息已写入成功。但是服务器不会接收消息。

在我的场景中,问题不在于SocketChannel。问题出在TCP超时。为了使连接保持活动状态,我从服务器向客户端发送周期性的ping消息。 socket默认支持此消息调用PING/PONG Web消息。此ping消息需要定期发送到客户端,以保持连接活动。当客户端收到ping报文时,自动向服务器回复PONG报文。通过使用这种方法,我能够保持套接字连接很长一段时间。

有关此方法的更多信息,请访问Solution for websocket hangingWebsockets. Loss of internet, keep-alive messages, app architecture etcwebsocket protocol and ping/pong messages

希望这篇文章能对你有所帮助(即使你没有使用websocket)。在websocket和您的聊天应用程序中可以采用相同的方法。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9859744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档