Как получить данные с сервера NodeJS (используя ws) в java? - PullRequest
0 голосов
/ 29 января 2019

У меня есть сервер 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...