猿问

如何从 JS WebSocket 向 Java Server 发送和接收消息?

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


var socket = new WebSocket("ws://localhost:8080"); socket.send("hola");


    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();

            }


        }

    }

}```


    


HUX布斯
浏览 132回答 1
1回答

红颜莎娜

您的代码中有很多问题。无论如何,您当前的问题是服务器实现了TCP服务器,但客户端使用WebSocket ,这是TCP之上的协议,因此您也必须处理该协议。您必须自己实现 http web 套接字协议或使用Netty或其他实现它的库。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答