Netty WebSocket长连接
## websocket客户端在线测试工具链接
注意点:websocket客户端在线测试工具,如你要测本机服务端的长连接,切记“ws://localhost:8888/ajaxchattest” 不要写本机的IP直接写localhost即可,另端口后面要加/ajaxchattest,否则总是报连接服务断开,我就是在此处踩了坑!!!
本人使用长连接的使用场景
业务场景:由于本人公司是做物业系统的,在业主的APP程序中创建访客信息,那么需求是则在物业平台系统中能自动弹出创建该访客的信息,所以前端WEB端要和后台服务端保存长链接,当访客添加信息后后台将此信息主动推给前端并展示!
Netty WebSocket Maven依赖
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty</artifactId>
<version>3.10.6.Final</version>
</dependency>
Netty WebSocket 后台 Java代码
以下代码就可以实现websocket长连接功能
webscoket初始化启动类
/**
* <desc>
* webscoket初始化启动类.
* </desc>
*
* @createDate 2018/7/19
*/
@RestController
public class WebsocketInitializationService {
@Autowired
WebSocketServer webSocketServer;
/**
* <desc>
* 初始化
* </desc>
*
* @author Juguang.S
* @createDate 2018/07/19
*/
@PostConstruct
public void polling() throws Exception {
webSocketServer.run();
}
}
websocket长连接服务类
参数:
PROPERTY_VISITOR_PUSH_MESSAGE_URL 为服务端所部署服务器的IP
PROPERTY_VISITOR_PUSH_MESSAGE_PORT 为服务端所部署服务器的端口
/**
* <desc>
* websocket长连接服务类.
* </desc>
*
* @createDate 2018/7/5
*/
@Service
public class WebSocketServer {
@Value("${" + PlatformConstants.PROPERTY_VISITOR_PUSH_MESSAGE_URL + "}")
private String PROPERTY_VISITOR_PUSH_MESSAGE_URL;
@Value("${" + PlatformConstants.PROPERTY_VISITOR_PUSH_MESSAGE_PORT + "}")
private String PROPERTY_VISITOR_PUSH_MESSAGE_PORT;
private static Logger LOG = Logger.getLogger(WebSocketServer.class);
static final boolean SSL = System.getPro