Как отправить EOF при использовании ws.send () в javascript с использованием модуля ws npm - PullRequest
0 голосов
/ 05 февраля 2019

Я использую модуль ws npm для создания клиента websocket и отправки большого потока данных на сервер websocket с помощью метода send ()

Я не совсем понимаю, как сообщить серверу, что клиент отправилвсе данные и сервер могут начать обработку, т.е. как отправить EOF с клиента?

Это мой сервер:

import WebSocket = require('ws');
import fs = require('fs');
var port: number = 8989;
var WebSocketServer = WebSocket.Server;
var wss = new WebSocketServer({ port: port });

wss.on('connection', (ws: WebSocket) => {
    console.log('Web Socket Server Connected');

    ws.on('close', function() {
        console.log("Connection closed by client");
        //ws.close();
    });

     //connection is up, let's add a simple simple event
    ws.on('message', (message: string) => {

        console.log('Data received from client');
        ws.send(message);
        } catch(error) {
            console.log('Connection is closed');
        }
    });

    //send immediatly a feedback to the incoming connection    
    ws.send('Hi there, I am a WebSocket server');
});

console.log(`Server started on port 8989`);

Это мой код клиента:

const ws = new WebSocket('ws://localhost:8989/');

      try {
        ws.on('open', function open() {
          console.log('Connected to Server');
          ws.send(streamData);
        });
      } catch (error) {
      }

      ws.on('message', (returnData: Buffer) => {

        // tslint:disable-next-line:no-console
        console.log('Message from Server: ' + returnData.length);

        console.log('Data received from server');
      });
      ws.on('close', function close() {
        // tslint:disable-next-line:no-console
        console.log('Closing connection');
      });

    });

Я просто отправляю streamData с клиента на сервер, и я передаю данные обратно с сервера на клиент.

Я хочу знать, как отправить EOF от клиента к серверу, чтобы сервер знал, что он получилвсе данные и может сделать некоторую обработку данных.

Заранее спасибо

...