前言
本地 WebSocket 服务通常只能在局域网内使用,例如与异地同事联调时,需要对方连入同一局域网或部署到云服务器,费时费力。利用内网穿透工具可以将本地服务映射到公网,无需公网 IP 和复杂配置,方便实时通信应用的调试和多端联调。
1. Java 服务端 Demo 环境
- JDK 1.8
- 框架:SpringBoot + Maven
- 工具:IDEA
2. 在 pom 文件引入第三包封装的 Netty 框架 Maven 坐标
<dependency>
<groupId>io.github.fzdwx</groupId>
<artifactId>sky-http-springboot-starter</artifactId>
<version>0.10.6</version>
</dependency>
注意:pom 文件中需注释掉 SpringBoot Web 启动器,Web 启动器默认是 Tomcat 服务启动,会和 Netty 服务冲突。
3. 创建服务端,以接口模式调用,方便外部调用
@GetMapping("/getConnect")
public void getConnect(HttpServerRequest request) {
request.upgradeToWebSocket(ws -> {
ws.mountOpen(h -> {
ws.send("连接成功,开始聊天吧!");
});
ws.mountText(s -> {
System.out.println(s); // 对方回复
System.out.println("客户端回复:" + s);
Scanner scanner = new Scanner(System.in);
String next = scanner.next();
ws.send(next);
});
});
}


