java怎么实现长连接?

如何用java实现HTTP长连接~

咱的理解:
当应用程序读取完响应体内容后或者调用 close() 关闭了URLConnection.getInputStream()返回的流,
JDK中的HTTP协议句柄将关闭连接,并将连接放到连接缓存中。下次获取URLConnection示例,并获取InputStream流时,会再次使用之前打开的TCP连接。

也就是说:

public static String sendPost(String url, String param) { String result = ""; try { URL httpurl = new URL(url); HttpURLConnection httpConn = (HttpURLConnection) httpurl.openConnection(); httpConn.setDoOutput(true); httpConn.setDoInput(true); PrintWriter out = new PrintWriter(httpConn.getOutputStream()); out.print(param); out.flush(); out.close(); BufferedReader in = new BufferedReader(new InputStreamReader(httpConn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } in.close(); } catch (Exception e) { System.out.println("没有结果!" + e); } return result; }

咱在间隔较短的时间内调用上面的方法(连接的地址不一样,但还是同一个服务器同一个项目),用的是同一个TCP连接。咱这么理解对吗?不对的话请具体讲讲。谢谢。

现在,使用websocket ,,,,,,,,,。。。。。。。。。。。

应该是HTTP连接吧,HTTP连接本身的request/response模式设计就是短链接的,即服务器端响应之后断开连接。
若要做长连接,在没有具体业务的情况下,最基础的就是建立java.net.Socket连接,自己制定协议来控制断开。服务器端的实现老的有标准IO(java.net.*),新的有NIO(java.nio.*)。有具体业务时可以考虑一些成熟的协议来实现,如XMPP等。

java socket 长连接 客户端
答:首先说长连接和短连接 短连接:在获得tcp连接之后发送数据,然后关闭连接 长连接:获得tcp连接之后,有数据则发送数据,无数据发送则定时发送数据包,保持连接状态.长短只是相对的 你的需求应该在取得socket连接之后建立输入输出流,在输入流得到相应数据之后就可以关闭连接了 ...

java 如何实现长连接心跳检测机制?
答:发心跳包。每隔几秒就发一个数据包过去,这是通讯常见问题。可以使用的是pushlet来实现;普通列表由浏览器维护一个长连接,发送请求后,服务器不以http response的方式返回,而是建立类似管道的途径,当有更新时,服务器通过这个管道发送消息,直到页面关闭后断开这个链接。另外,如果使用这些框架,那么在...

如何用java实现HTTP长连接
答:tomcat9提供了一种叫webSocket的东西,可以实现这个,但是必须要使用tomcat9来支持 另外一个就是运用长轮询,就是前台给后台发一个请求, 然后后台一直不处理, 可以while循环或者sleep(1000), 每隔1秒去检查是否应该返回数据, 如果后台决定要刷新了, 就返回数据, 然后前台接收到返回数据后去刷新你要刷新的...

如何用java实现HTTP长连接
答:http是无状态协议,是不能实现长连接的,长连接,只是js里面使用了websocket协议访问数据,你的java服务端和页面js代码,要实现websocket即可

java Netty NIO 如何突破 65536 个端口的限制?如何做到10万~50万的...
答:通常情况下是不可以突破的,端口有限制.单独对外提供请求的服务不用考虑端口数量问题,监听某一个端口即可.但是向提供代理服务器,就不得不考虑端口数量受限问题了.当前的1M并发连接测试,也需要在客户端突破6万可用端口的限制.端口为16进制,那么2的16次方值为65536,在linux系统里面,1024以下端口都是超级管理...

如何用java实现HTTP长连接
答:都是短连接 实现长连接需要用socket 或者netty

Java webservice通信 由于服务端查库耗时太长 我的客户端总是在还没...
答:HTTP的通讯模式就是面向短链接的,虽然可以通过设置连接timeout的时间来延长超时时间,但这不是根本解决问题的方法。建议两个思路:1.使用Java Socket实现长连接通讯。2.不改通讯协议,将同步接口改为异步接口,通过异步方式实现长时间任务的处理。大致思路是,服务端收到客户端请求后立即发送一个request_id...

java Netty NIO 如何突破 65536 个端口的限制?如何做到10万~50万的...
答:通常情况下是不可以突破的,端口有限制.单独对外提供请求的服务不用考虑端口数量问题,监听某一个端口即可.但是向提供代理服务器,就不得不考虑端口数量受限问题了.当前的1M并发连接测试,也需要在客户端突破6万可用端口的限制.端口为16进制,那么2的16次方值为65536,在linux系统里面,1024以下端口都是超级管理...

java开发聊天功能用什么技术实现的?
答:如Netty、Apache HttpClient等,来实现HTTP长连接功能。4. 消息队列:消息队列可以实现异步通信,通过在消息队列中存储消息,来实现客户端和服务器之间的实时通信。Java可以使用一些消息队列框架,如ActiveMQ、RabbitMQ等,来实现消息队列功能。需要根据具体需求选择合适的技术来实现聊天功能。

Java Web 服务器的消息推送 几种方案
答:Java Web 服务器的消息推送有以下几种方案:1. 轮询:前端使用ajax不停的发起请求获取想要的数据(最简单也是最容易耗尽服务器资源)。2. 长连接:HTTP长连接,客户端向服务端发起请求,服务端等有数据了才response,否则一直持有该连接Cometgithub: comet4j 项目,可以直接下载配置jar到tomcat下使用。3、...

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网