handleWebSocket method
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}");
}
}
}