// 配置类示例
@Bean
public ServletServerContainerFactoryBean createWebSocketContainer() {
return new ServletServerContainerFactoryBean();
}
// 客户端连接示例
public void connectToWebSocket() {
StandardWebSocketClient client = new StandardWebSocketClient();
WebSocketHttpHeaders headers = new WebSocketHttpHeaders();
client.doHandshake(new MyWebSocketHandler(), headers, ws://localhost:8080/websocket);
}
3、Netty实现
java
public class WebSocketServer {
public static void main(String[] args) throws Exception {
EventLoopGroup bossGroup = new NioEventLoopGroup();
EventLoopGroup workerGroup = new NioEventLoopGroup();
try {
ServerBootstrap b = new ServerBootstrap();
b.group(bossGroup, workerGroup)
.channel(NioServerSocketChannel.class)
.childHandler(new ChannelInitializer<SocketChannel() {
@Override
public void initChannel(SocketChannel ch) {
ch.pipeline().addLast(
new HttpServerCodec(),
new WebSocketServerProtocolHandler(/websocket),
new TextWebSocketFrameHandler()
);
}
});
依赖配置(Maven):
xml
<! Jakarta WebSocket
<dependency
<groupIdjakarta.websocket</groupId
<artifactIdjakarta.websocket-api</artifactId
<version2.0</version
</dependency
<! Spring WebSocket
<dependency
<groupIdorg.springframework</groupId
<artifactIdspring-websocket</artifactId
<version6.0.9</version
</dependency