用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) 个答案