better_web_socket 0.0.8 copy "better_web_socket: ^0.0.8" to clipboard
better_web_socket: ^0.0.8 copied to clipboard

outdated

Advanced web socket based on web_socket_channel.

better_web_socket #

Advanced web socket based on web_socket_channel.

Install Started #

  1. Add this to your pubspec.yaml file:
dependencies:
  better_web_socket: ^0.0.8
  1. Install it
$ flutter packages get

Normal usage #

void receiveData(BuildContext context) {
  MyWebSocketController controller = context.read<MyWebSocketController>();

  receiveDataSubscription?.cancel();
  receiveDataSubscription = controller.receiveDataStream.listen((data) {
    int clientRequestId = parse(data).clientRequestId; // TODO  clientRequestId from server
    controller.handleSendDataResponse(clientRequestId, BetterWebSocketSendDataResponseState.SUCCESS);
  });

  sendDataResponseStateSubscription?.cancel();
  sendDataResponseStateSubscription = controller.sendDataResponseStateStream.listen((data) {
    int clientRequestId = data.item1;
    if (clientRequestIdList.contains(clientRequestId)) {
      clientRequestIdList.remove(clientRequestId);

      String result = "";
      switch (data.item2) {
        case BetterWebSocketSendDataResponseState.SUCCESS:
          result = "send data success";
          break;
        case BetterWebSocketSendDataResponseState.FAIL:
          result = "send data failure";
          break;
        case BetterWebSocketSendDataResponseState.TIMEOUT:
          result = "send data timeout";
          break;
      }
      print(result);
    }
  });
}

void connect(BuildContext context) {
  context.read<DeviceWebSocketController>().startWebSocketConnect(retryCount: double.maxFinite.toInt());
}

void disconnect(BuildContext context, Duration duration) {
  context.read<DeviceWebSocketController>().stopWebSocketConnectAfter(duration: duration);
}

void sendData() {
  context.read<DeviceWebSocketController>().sendDataAndWaitResponse(clientRequestId, data, retryCount: 3);
}

Feature #

  • reconnect
  • delay disconnect
  • simulate HTTP request
  • auto login when socket connected
1
likes
0
pub points
39%
popularity

Publisher

unverified uploader

Advanced web socket based on web_socket_channel.

Homepage
Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

connectivity, flutter, tuple, web_socket_channel

More

Packages that depend on better_web_socket