这是第一天实现内网穿透。今天主要是完成项目的搭建,实现一个基于websocket的echoserver。源码地址:https://github.com/fzdwx/burst技术选择server使用Java&Netty&Springbootclient使用Goservermavne依赖于io.github.fzdwxsky-http-springboot-starter0.10.6sky-http-springboot-starter是一个基于Netty打包的工具包,可以快速搭建http服务Mainpackageorg.example;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublicclassMain{publicstaticvoidmain(String[]args){finalvarcontext=SpringApplication.run(Main.class,args);}}接收websocket请求包org.example.controller;importhttp.HttpServerRequest;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RestController;@RestControllerpublicclassConnectController{@GetMapping("/connect")publicvoidconnect(HttpServerRequestrequest){request.upgradeToWebSocket(ws->{ws.mountOpen(h->{ws.send("helloworld");});});}}上面的代码大致意思是:将当前请求升级到第14行的一个方法中websocket请求挂起,意思是当与客户端建立连接成功后,向客户端发送helloworld。现在我们可以使用一个在线测试websocket网站进行测试,成功接收到helloworld。什么是回显服务器??顾名思义,就是将客户端发送的消息原样返回给客户端。所以我们只需要添加如下一段代码即可完成:ws.mountText(s->{ws.send(s);});上面的代码大概意思是:挂在当前的websocket连接上,从一个监听客户端发送文本数据,然后原样返回给客户端。最终效果总结实现一个echoserver还是很简单的。明天我们将用Go语言实现echo客户端。