Javascript 如何从JSWebSocket向Java服务器发送和接收消息?
我知道如何为java客户机编写java服务器代码,但我是从Js编码开始的,我确实不了解它的套接字工作方式。我试图在Java中使用一个普通的TCP服务器,但我只是从Js接收到消息头的一部分,而不是消息。我的代码可能是错的,所以如果有人给我发一个JS客户端的例子,其中有一个Java服务器和一些ramdom字符串事务,我会很高兴的。我附上我的代码只是为了让你痛苦:)Javascript 如何从JSWebSocket向Java服务器发送和接收消息?,javascript,java,sockets,websocket,server,Javascript,Java,Sockets,Websocket,Server,我知道如何为java客户机编写java服务器代码,但我是从Js编码开始的,我确实不了解它的套接字工作方式。我试图在Java中使用一个普通的TCP服务器,但我只是从Js接收到消息头的一部分,而不是消息。我的代码可能是错的,所以如果有人给我发一个JS客户端的例子,其中有一个Java服务器和一些ramdom字符串事务,我会很高兴的。我附上我的代码只是为了让你痛苦:) var socket=newwebsocket(“ws://localhost:8080”);socket.send(“hola”) 代
var socket=newwebsocket(“ws://localhost:8080”);socket.send(“hola”)代码>
代码中有很多问题。不管怎样,您当前的问题是服务器实现了一个TCP服务器,但客户端使用的是WebSocket,这是一个在TCP之上的协议,因此您也必须处理该协议。您必须自己实现http web套接字协议,或者使用Netty或实现它的其他LIB
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();
}
}
}
}```