websocketclient.dart 1.4 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import 'dart:convert';
  2. import 'dart:io';
  3. import 'dart:typed_data';
  4. Future<void> main(List<String> args) async {
  5. var connectUrl = args[0]; //'ws://127.0.0.1:8888?token=A8A8A8'
  6. WebSocket.connect(connectUrl).then((socket) {
  7. socket.listen((onData) {
  8. var typename = onData.runtimeType.toString();
  9. //print("typename$typename");
  10. var uint8Array = Uint8List.fromList(onData);
  11. //print("uint8Array:$onData");
  12. var byteData = uint8Array.buffer.asByteData();
  13. var messageType = byteData.getUint8(0);
  14. //print("messageType:$messageType");
  15. var notifyType = byteData.getUint8(1);
  16. //print("notifyType:$notifyType");
  17. var messageLength = byteData.getUint8(2);
  18. var byteDataLength = byteData.lengthInBytes;
  19. //print("bytelength:$byteDataLength,messagelength:$messageLength");
  20. var messageConentList =
  21. Uint8List.view(uint8Array.buffer, 6, messageLength);
  22. var messageConentLength = messageConentList.length;
  23. //print("messageConentLength:$messageConentLength");
  24. var messageConent = Uint8List.fromList(messageConentList);
  25. var messageText = Utf8Decoder().convert(messageConent);
  26. print(
  27. "【WebSocket】接收到消息 == > msgtype:$messageType, notifyType:$notifyType,lenght:$messageLength, content:$messageText");
  28. }, onError: (error) {
  29. print("【WebSocket】错误 == > $error");
  30. }, onDone: () {
  31. print("【WebSocket】结束链接");
  32. });
  33. });
  34. }