这里只是Flutter实现最简单的WebSocket,基础的字符串以及二进制数据发送的介绍
一、只发送字符串
/// WebSocket的测试代码
void main() async
{
// ignore: close_sinks
WebSocket _webSocket = await WebSocket.connect("wss://socket.idcd.com:1443");
//监听函数
_webSocket.listen(_onReceive, onDone: () {
print('连接关闭时响应');
}, onError: (error) {
print('发生错误');
}, cancelOnError: true);
_webSocket.add("客户端发送过去的");
}
void _onReceive(data) {
print("收到服务器数据:" + data);
}
输出结果
收到服务器数据:您发送的消息是:客户端发送过去的
二、发送二进制数据
发送二进制数据也比较简单,接收的参数是Uint8List
同样也是add方法。接收返回参数这里要稍微变化一下,做一些判断。
Uint8List data;
//这里填充你想要的二进制数据
_webSocket.add(data);
接收返回参数是这样的:
void _onReceive(data) {
if (data.runtimeType == String) {
print("String received");
String dataString = data;
print(dataString.length);
print(dataString);
} else if (data.runtimeType.toString() == "_Uint8ArrayView") {
Uint8List binaryIntList = data;
//这里开始处理二进制数据了
}
}
具体的二进制操作对象,可以参上我上篇的ByteArray
Flutter实现二进制操作对象ByteArray
这样进行读写数字和字符串就很方便了。