start method
Starts the websocket server.
Implementation
Future<HttpServer> start() {
final handler = webSocketHandler((dynamic webSocket) async {
assert(webSocket is WebSocketChannel);
final wch = webSocket as WebSocketChannel;
final cli = await makeClient(wch);
unawaited(wch.sink.done.then((dynamic e) => remove(cli)));
add(cli);
_ctrlClient.add(cli);
});
return shelf_io.serve((shelf.Request sock) async {
if (sock.url.path == 'heartbeat') {
return shelf.Response(await checkHeart() ? 200 : 500);
}
return handler(sock);
}, _host ?? '127.0.0.1', port!).then((server) {
logger.info('Serving at ws://${server.address.host}:${server.port}');
return _server = server;
});
}