connect method
连接
devicename
设备名
appVersion
app版本
osVersion
系统版本
packageName
包名
deviceid
设备id
language
语言
channelName
渠道名
Implementation
Future connect({
String? devicename,
String? appVersion,
String? osVersion,
String? packageName,
String? deviceid,
String? language,
String? channelName,
}) async {
if (uri == null || port == null || uid == null) {
throw IOException;
}
this.devicename = devicename;
this.appVersion = appVersion;
this.osVersion = osVersion;
this.packageName = packageName;
this.deviceid = deviceid;
this.language = language;
this.channelName = channelName;
channel = WebSocket(Uri.parse('${useSsl ? 'wss' : 'ws'}://$uri:$port'),
backoff: ConstantBackoff(Duration(seconds: 10)),
binaryType: 'arraybuffer');
channel!.connection.listen((event) {
if (event.runtimeType == Connected || event.runtimeType == Reconnected) {
sendLoginMsg();
onConnectionStatusChanged(
event.runtimeType == Connected ? 'Connected' : 'Reconnected');
} else {
onConnectionStatusChanged(event.runtimeType.toString());
}
});
channel!.messages.listen((message) {
Uint8List data = message;
if (data[0] == PING_TYPE) {
sendPong();
} else if (data[0] == REPLY_BODY) {
var message = data.sublist(1, data.length);
replybody.Model info = replybody.Model();
info.mergeFromBuffer(message);
} else if (data[0] == Message_TYPE) {
var message = data.sublist(1, data.length);
messages.Model model = messages.Model();
model.mergeFromBuffer(message);
onMessageReceived(model);
}
}, onError: (error, StackTrace trace) {
channel = null;
onConnectionStatusChanged('Disconnected');
}, onDone: () {
channel = null;
onConnectionStatusChanged('Disconnected');
}, cancelOnError: true);
}