Javascript 如何从JSWebSocket向Java服务器发送和接收消息?

Javascript 如何从JSWebSocket向Java服务器发送和接收消息?,javascript,java,sockets,websocket,server,Javascript,Java,Sockets,Websocket,Server,我知道如何为java客户机编写java服务器代码,但我是从Js编码开始的,我确实不了解它的套接字工作方式。我试图在Java中使用一个普通的TCP服务器,但我只是从Js接收到消息头的一部分,而不是消息。我的代码可能是错的,所以如果有人给我发一个JS客户端的例子,其中有一个Java服务器和一些ramdom字符串事务,我会很高兴的。我附上我的代码只是为了让你痛苦:) var socket=newwebsocket(“ws://localhost:8080”);socket.send(“hola”) 代

我知道如何为java客户机编写java服务器代码,但我是从Js编码开始的,我确实不了解它的套接字工作方式。我试图在Java中使用一个普通的TCP服务器,但我只是从Js接收到消息头的一部分,而不是消息。我的代码可能是错的,所以如果有人给我发一个JS客户端的例子,其中有一个Java服务器和一些ramdom字符串事务,我会很高兴的。我附上我的代码只是为了让你痛苦:)

var socket=newwebsocket(“ws://localhost:8080”);socket.send(“hola”)


代码中有很多问题。不管怎样,您当前的问题是服务器实现了一个TCP服务器,但客户端使用的是WebSocket,这是一个在TCP之上的协议,因此您也必须处理该协议。您必须自己实现http web套接字协议,或者使用Netty或实现它的其他LIB

    public static void main(String [] args){
        try {
            ServerSocket serverSocket= new ServerSocket(8080);
            ClientHandler clientHandler;

            while (true){
                Socket socket= serverSocket.accept();
                clientHandler= new ClientHandler(socket);
                clientHandler.start();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static class ClientHandler extends Thread{
        Socket socket; InputStream in; OutputStream out; BufferedInputStream bufferedInputStream;
        public ClientHandler(Socket socket){
            try {
                this.socket= socket;
                in= socket.getInputStream();
                out= socket.getOutputStream();
                bufferedInputStream= new BufferedInputStream(in);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        @Override
        public void run(){
            System.out.println(socket.getInetAddress()+"Connected successfully");

            try {
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));
                StringBuilder stringBuilder = new StringBuilder();

                stringBuilder.append(bufferedReader.readLine());
                System.out.println(stringBuilder.toString());
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
    }
}```