有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用Java创建WebSocket服务器

我需要创建一个简单的WebSocket客户端来发送bath和forth Json消息

我创建了握手服务:

public class WebSocket {

        public static void main(String[] args) throws IOException, NoSuchAlgorithmException {
            ServerSocket server = new ServerSocket(3703);
            try {
                System.out.println("Server has started on 127.0.0.1:3703.\r\nWaiting for a connection...");
                Socket client = server.accept();
                System.out.println("A client connected.");

                InputStream in = client.getInputStream();
                OutputStream out = client.getOutputStream();
                Scanner s = new Scanner(in, "UTF-8");

                try {
                    String data = s.useDelimiter("\\r\\n\\r\\n").next();
                    System.out.println(data);
                    Matcher get = Pattern.compile("GET").matcher(data);

                    if (get.find()) {
                        System.out.println("found");
                        Matcher match = Pattern.compile("Sec-WebSocket-Key: (.*)").matcher(data);
                        match.find();
                        byte[] response = ("HTTP/1.1 101 Switching Protocols\r\n"
                                + "Connection: Upgrade\r\n"
                                + "Upgrade: websocket\r\n"
                                + "Sec-WebSocket-Accept: "
                                + Base64.getEncoder().encodeToString(MessageDigest.getInstance("SHA-1").digest((match.group(1) + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11").getBytes("UTF-8")))
                                + "\r\n\r\n").getBytes("UTF-8");
                        out.write(response, 0, response.length);


//Code for reading and decoding messages



                    }
                } finally {
                    s.close();
                }
            } finally {
                server.close();
            }
        }
    }

但是,实现消息解码的最佳方法是什么?是否有任何库可用于此目的

一般来说,创建WebSocket服务的最佳方法是什么?我应该使用ApplicationServer还是可以创建独立服务。如果是独立服务,我应该使用哪些库


共 (0) 个答案