connect method
Implementation
@VoltronMethod(funcConnect)
bool connect(VoltronMap params, final JSPromise promise) {
var url = params.get<String>('url');
var headers = params.get<VoltronMap>('headers');
var protocals = headers?.get<String>('Sec-WebSocket-Protocol')?.split(',');
if (url == null) {
var returnValue = VoltronMap();
returnValue.push<int>('code', -1);
returnValue.push<String>('reason', 'no valid url for websocket');
promise.reject(returnValue);
return false;
}
_autoInt += 1;
var webSocketId = _autoInt;
// 实例化一个 websocket 实例
var webSocketClient = WebSocketClient(
url: url,
listener: WebSocketListener(webSocketId, context, this),
protocols: protocals,
headers: headers?.toMap(),
);
mWebSocketConnections[webSocketId] = webSocketClient;
var returnValue = VoltronMap();
returnValue.push<int>('code', 0);
returnValue.push<String>('reason', "");
returnValue.push<int>('id', webSocketId);
promise.resolve(returnValue);
webSocketClient.connect();
return true;
}