makabaka_1
Makabaka♂
采纳率100%
2021-03-03 11:15

Socket客户端能否持续监听服务器发送的消息

已采纳

现在项目有需求,需要接受Socket服务器推送的数据来实时展示,我们之前是做的定时任务每秒钟获取一次inputstream,现在想监控socket的变化,但是我看了看源码觉得我没办法实现,请问有没有大神解答一下,能不能实现实时监控Socket服务器推送的数据。如果能的话,有哪些方法呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • w172087242 little_how 1月前

    socket是全双工的通道,如果保持长连接的情况下是可以试试感知到服务器推送的数据的;

    前提是你不能单方面关闭socket获取的输入流,将获取到的流直接放到单独的线程里面,有信息就读取,

    没信息就是阻塞住的,网络没问题的话,时效性还是很不错的;

    如果你自己实在不会写,就考虑使用netty吧,这样还要简单点。

    或者很久之前写的一篇文章,可以参考一下

    https://blog.csdn.net/w172087242/article/details/51698035?spm=1001.2014.3001.5501

    点赞 评论 复制链接分享
  • m0_54740405 北风之神Boreas 1月前

    答案:能做

    没用过java,但是java程序启动后,调用的系统API和其它编程语言完全一样

    socket 本质上只是一个连接,在进程里会映射为一个文件描述符数值,一般从3开始返回【内核】

    socket 文件描述符上都有读写异常事件,监听这些socket的事件一般都是 “事件循环” eventLoop

    所以你在客户端里是可以做的。

    https://segmentfault.com/a/1190000038782113

    点赞 评论 复制链接分享

为你推荐