У меня есть сервер NodeJs, который может получать данные от клиента Java с помощью OutputStream.Но как отправить данные с самого NodeJs клиенту и позволить Java читать полученные данные?Допустим, сервер хочет отправить ответное сообщение клиенту.Что я должен добавить к клиенту и серверу?
Я добавил некоторый код на сервер NodeJs для отправки данных через сокет, но я думаю, что это неправильно.
Мой код NodeJs
const javaServer = require('net').createServer();
const WebSocket = require('ws');
const wss = new WebSocket.Server({port:8286});
...
javaServer.on('connection', (javaSocket) => {
var clientAddress = javaSocket.address().address + ':' +
javaSocket.address().port;
console.log (`Java ${clientAddress} connected!`);
var firstDataListener = (data) => {
fileData = data;
console.log ('Received from Java End : ' + data);
};
javaSocket.on('data', firstDataListener);
javaSocket.on('close', ()=>{
console.log(`Java ${clientAddress} disconnected.`);
});
});
wss.on('connection', function connection(ws){
ws.send("Hello, Client!");
});
javaServer.listen(javaPort);
И моя сторона Java
public static void main(String[] args) {
try {
Socket nodejs = new Socket("127.0.0.1", 8285);
Thread.sleep(100);
for (int i = 1; i < 100; i++) {
Thread.sleep(500);
sendMessage(nodejs, i + " ");
System.out.println(i + " has been sent to server");
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void sendMessage(Socket s, String message) throws IOException
{
System.out.println("Send Msg: " + message);
s.getOutputStream().write(message.getBytes("UTF-8"));
s.getOutputStream().flush();
}