欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring boot websocket简单例子

程序员文章站 2022-04-09 16:43:39
...

pom.xml

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>

WebSocketApplication.java

package websocket;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class WebSocketApplication {
	public static void main(String[] args) {
		SpringApplication.run(WebSocketApplication.class, args);
	}
}

RawWebSocketConfiguration.java  配置websocket服务端。

package websocket;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
import org.springframework.web.socket.handler.TextWebSocketHandler;

@Configuration
@EnableWebSocket
public class RawWebSocketConfiguration implements WebSocketConfigurer {

	public static class MyWebSocketHandler extends TextWebSocketHandler {
		@Override
		public void afterConnectionEstablished(WebSocketSession session) throws Exception {
			session.sendMessage(new TextMessage("Hello Client"));
		}

		@Override
		protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
			System.out.println("Received: " + message.getPayload());
			session.sendMessage(new TextMessage("Received " + message.getPayload()));
		}
	}

	@Override
	public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
		registry.addHandler(new MyWebSocketHandler(), "/rawwebsocket");
	}

}


客户端简单的页面  index.html 

<html>
<script type="text/javascript">
var ws = new WebSocket('ws://127.0.0.1:8080/rawwebsocket');
ws.onmessage = function(event) {
	alert(event.data);
};

function send(txt) {
	ws.send(txt);
}
</script>
<button onclick="send(new Date())">Send</button>
</html>


接下来启动服务,访问 http://127.0.0.1:8080/index.html