【问题标题】:How to send and recive messages from JS WebSocket to Java Server?如何从 JS WebSocket 向 Java Server 发送和接收消息?
【发布时间】:2021-03-06 19:52:22
【问题描述】:

我知道如何为 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();
            }

        }
    }
}```

    

【问题讨论】:

    标签: javascript java sockets websocket server


    【解决方案1】:

    您的代码中有很多问题。无论如何,您当前的问题是服务器实现了 TCP 服务器,但客户端使用 WebSocket 这是 TCP 之上的协议,因此您必须处理协议也是。您必须自己实现 http web socket 协议或使用 Netty 或其他实现它的库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-15
      • 2011-11-30
      • 1970-01-01
      • 2015-07-28
      • 2016-08-19
      • 1970-01-01
      • 2019-09-09
      • 1970-01-01
      相关资源
      最近更新 更多