Java сервер javascript клиент websockets
Я пытаюсь установить соединение между сервером на Java и клиентом Javascript, но получаю эту ошибку на стороне клиента:
Соединение WebSocket с 'ws://127.0.0.1:4444/' не удалось: соединение закрыто до получения ответа на рукопожатие
Возможно, он остается в состоянии открытия, потому что функция connection.onopen никогда не вызывается. Console. log ('Connected!') не вызывается.
Кто-нибудь может мне помочь?
Спасибо
Что я уже пробовал:
Сервер
import java.io.IOException; import java.net.ServerSocket; public class Server { public static void main(String[] args) throws IOException { try (ServerSocket serverSocket = new ServerSocket(4444)) { GameProtocol gp = new GameProtocol(); ServerThread player= new ServerThread(serverSocket.accept(), gp); player.start(); } catch (IOException e) { System.out.println("Could not listen on port: 4444"); System.exit(-1); } } }
ServerThread
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; public class ServerThread extends Thread{ private Socket socket = null; private GameProtocol gp; public ServerThread(Socket socket, GameProtocol gp) { super("ServerThread"); this.socket = socket; this.gp = gp; } public void run() { try ( PrintWriter out = new PrintWriter(socket.getOutputStream(), true); BufferedReader in = new BufferedReader( new InputStreamReader( socket.getInputStream())); ) { String inputLine, outputLine; while ((inputLine = in.readLine()) != null) { outputLine = gp.processInput(inputLine); System.out.println(outputLine); } socket.close(); } catch (IOException e) { e.printStackTrace(); } } }
GameProtocol
public class GameProtocol { public String processInput(String theInput) { String theOutput = null; theOutput = theInput; return theOutput; } }
Клиент
var connection = new WebSocket('ws://127.0.0.1:4444'); connection.onopen = function () { console.log('Connected!'); connection.send('Ping'); // Send the message 'Ping' to the server }; // Log errors connection.onerror = function (error) { console.log('WebSocket Error ' + error); }; // Log messages from the server connection.onmessage = function (e) { console.log('Server: ' + e.data); };