WebFlux 中 WebSocket 实现通信

This commit is contained in:
liqiangqiang
2018-05-03 15:23:29 +08:00
parent e69bddd396
commit 0da9ac1a88
3 changed files with 10 additions and 5 deletions

View File

@@ -12,6 +12,7 @@ public class EchoHandler implements WebSocketHandler {
public Mono<Void> handle(final WebSocketSession session) { public Mono<Void> handle(final WebSocketSession session) {
return session.send( return session.send(
session.receive() session.receive()
.map(msg -> session.textMessage("服务端返回:小明, -> " + msg.getPayloadAsText()))); .map(msg -> session.textMessage(
"服务端返回:小明, " + msg.getPayloadAsText())));
} }
} }

View File

@@ -6,22 +6,24 @@
</head> </head>
<body> <body>
<div class="events"></div> <div class="chat"></div>
<script> <script>
var clientWebSocket = new WebSocket("ws://localhost:8080/echo"); var clientWebSocket = new WebSocket("ws://localhost:8080/echo");
clientWebSocket.onopen = function () { clientWebSocket.onopen = function () {
console.log("clientWebSocket.onopen", clientWebSocket); console.log("clientWebSocket.onopen", clientWebSocket);
console.log("clientWebSocket.readyState", "websocketstatus"); console.log("clientWebSocket.readyState", "websocketstatus");
clientWebSocket.send("你好"); clientWebSocket.send("你好");
} }
clientWebSocket.onclose = function (error) { clientWebSocket.onclose = function (error) {
console.log("clientWebSocket.onclose", clientWebSocket, error); console.log("clientWebSocket.onclose", clientWebSocket, error);
events("再见"); events("聊天会话关闭!");
} }
function events(responseEvent) { function events(responseEvent) {
document.querySelector(".events").innerHTML += responseEvent + "<br>"; document.querySelector(".chat").innerHTML += responseEvent + "<br>";
} }
</script> </script>
</body> </body>

View File

@@ -7,6 +7,8 @@ import java.net.URI;
import java.time.Duration; import java.time.Duration;
public class WSClient { public class WSClient {
public static void main(final String[] args) { public static void main(final String[] args) {
final WebSocketClient client = new ReactorNettyWebSocketClient(); final WebSocketClient client = new ReactorNettyWebSocketClient();
client.execute(URI.create("ws://localhost:8080/echo"), session -> client.execute(URI.create("ws://localhost:8080/echo"), session ->