Мне нужно установить соединение между java WebSocket и javascript. Но я закончил со следующей ошибкой -
Соединение Web Socket с 'ws: // localhost: 8081 / websocket' не удалось: Ошибка при установлении соединения: net :: ERR_CONNECTION_REFUSED
package com.webchat.backend;
import javax.websocket.EncodeException;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.CopyOnWriteArraySet;
@ServerEndpoint(value = "/websocket")
public class Socket {
private static final Set<Socket> chatEndpoints = new CopyOnWriteArraySet<>();
private Session session;
@OnOpen
public void onOpen(Session session) {
this.session = session;
chatEndpoints.add(this);
}
@OnMessage
public void onMessage(String message, Session session) {
try {
if (session.isOpen())
session.getBasicRemote().sendText(message);
else
System.out.println("Session is not opened");
} catch (IOException io) {
System.out.println("Error in sending the message");
}
}
public void sendAllUser(String message) {
this.chatEndpoints.forEach(endpoint -> {
System.out.println(1);
synchronized (endpoint) {
System.out.println(2);
try {
System.out.println("is this working");
endpoint.session.getBasicRemote().sendObject(message);
} catch (IOException | EncodeException encodeException) {
System.out.println(3);
System.out.println("unable to send message");
}
}
});
}
}
Клиентская сторона
WorkFlow
<h4>Hi websocket</h4>
<script>
const socket = new WebSocket("ws://localhost:8081/websocket");
socket.onmessage = (event) => {
alert(event.data);
}
</script>