handleWebSocket method

void handleWebSocket(
  1. WebSocket socket
)

Implementation

void handleWebSocket(WebSocket socket) async {
  // RawDatagramSocket udpClient =
  //     await RawDatagramSocket.bind(InternetAddress(udpServerIp), 0);
  //   .then((RawDatagramSocket socket) {
  //print('UDP client ready to receive');
  //print('${udpClient.address.address}:${udpClient.port}');

  //handler = ReqHandler(socket.address.address, socket.port, socket);

  onNewMessageFromWS(String data) {
    print(data);
    // udpClient.send(data.toString().codeUnits, InternetAddress(udpServerIp),
    //     udpServerPort);
  }

  final connection = RedisConnection();
  Command command = await connection.connect(redisIp, redisPort);

  command.send_object(["AUTH", redisPassword]);

  PubSub pubsub = PubSub(command);
  pubsub.subscribe(["monkey"]);

  socket.listen(
    (data) {
      print('Received: $data');
      onNewMessageFromWS(data);
      //socket.add('Echo: ${json.encode(resp)}');
    },
    onDone: () {
      print('Connection closed');
    },
    onError: (error) {
      print('Error: $error');
    },
  );

  final stream = pubsub.getStream();
  var streamWithoutErrors = stream.handleError((e) => print("error $e"));

  await for (final msg in streamWithoutErrors) {
    var kind = msg[0];
    var food = msg[2];
    if (kind == "message") {
      //print("monkey got ${food}");
      socket.add(food);
    } else {
      print("received non-message ${msg}");
    }
  }
}