emit method

Future<SocketResponse> emit(
  1. String event, [
  2. dynamic data
])

Implementation

Future<SocketResponse> emit(String event, [data]) async {
  Completer<SocketResponse> completer = Completer<SocketResponse>();
  SocketRequest request = SocketRequest.create(event, data);

  request = interceptors.fold(
      request, (request, interceptor) => interceptor.onRequest(request));
  _socket?.emitWithAck(request.event, request.data, ack: (data) {
    try {
      SocketResponse response = SocketResponse(data);
      if (checkResponse(data)) {
        response = interceptors.fold(response,
            (response, interceptor) => interceptor.onResponse(response));
        completer.complete(response);
      } else {
        _onError(data);
        completer
            .completeError(SocketException(response, StackTrace.current));
      }
    } catch (err) {
      completer.completeError(err);
    }
  });

  return completer.future;
}