在JAVA中创建支持长连接的HttpServer可以使用Java SE 6及以上版本中引入的HttpServer类来实现。以下是一个基本的示例代码:
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
public class LongConnectionHttpServer {
public static void main(String[] args) throws IOException {
// 创建HttpServer实例,绑定指定端口
HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);
// 创建一个上下文路径为"/"的HttpHandler处理器
server.createContext("/", new MyHandler());
// 设置服务器的线程池,可以根据实际需求进行调整
server.setExecutor(null);
// 启动HttpServer
server.start();
System.out.println("Server started on port 8080.");
}
static class MyHandler implements HttpHandler {
@Override
public void handle(HttpExchange exchange) throws IOException {
// 设置响应头,指定支持长连接
exchange.getResponseHeaders().set("Connection", "keep-alive");
// 设置响应体内容
String response = "Hello, World!";
exchange.sendResponseHeaders(200, response.length());
// 发送响应体内容
OutputStream outputStream = exchange.getResponseBody();
outputStream.write(response.getBytes());
outputStream.close();
}
}
}
这段代码通过使用com.sun.net.httpserver.HttpServer
类来创建一个HttpServer实例,并绑定指定端口(这里是8080)。然后通过createContext
方法创建一个上下文路径为"/"的处理器MyHandler
,在该处理器中设置响应头来支持长连接,并设置响应体内容。最后,通过调用start
方法启动HttpServer。
请注意,以上代码仅作为示例,实际应用中可能需要进一步的处理和优化。
推荐的腾讯云相关产品:腾讯云云服务器(CVM)- https://cloud.tencent.com/product/cvm
领取专属 10元无门槛券
手把手带您无忧上云