繁体   English   中英

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

[英]How to send and recive messages from JS WebSocket to 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();
            }

        }
    }
}```

    

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM