flatter是否将json作为字节发送到websocket服务器?
我有一条类似JSON的消息,如下所示:flatter是否将json作为字节发送到websocket服务器?,json,request,dart,flutter,Json,Request,Dart,Flutter,我有一条类似JSON的消息,如下所示: static getHiMsg(String token, String sender) { var msg = { "token": token, "user_addr": sender, "ua": "dart/fluter-v0.0.1", "device": "Phone", "location": "Hunan" }; var outMsg
static getHiMsg(String token, String sender) {
var msg = {
"token": token,
"user_addr": sender,
"ua": "dart/fluter-v0.0.1",
"device": "Phone",
"location": "Hunan"
};
var outMsg = {
"msg_type": "hi",
"payload": msg
};
return outMsg;
}
我想把这个消息发送到websocket服务器,它只处理json请求,如果是纯文本或错误格式的json,它将拒绝连接
以下是我所做的:
void _sayHi() async {
_token = await _prefs.getToken();
_userAddr = await _prefs.getUserAddr();
var hi = getHiMsg(_token, _userAddr);
print(hi);
channel.sink.add(hi);
}
通道只是IOWebSocketChannel.connect(wsUrl)
这里我的服务器无法获得正确的JSON格式请求,实际上这是Python中正确的逻辑:
def hi_msg(token, addr):
# change this to one account token and user_addr
msg = {
"token": token,
"user_addr": addr,
"ua": "py/macos",
"device": "mac",
"location": "Hunan"
}
out_msg = {
"msg_type": "hi",
"payload": msg
}
msg_str = json.dumps(out_msg)
b = bytes(msg_str, 'utf-8')
return b
如何在飞镖和颤振中实现这一点?我不太熟悉Dart字节操作。您可以在Dart中获得JSON字符串
import 'dart:convert';
...
var jsonString = json.encode(data);
并使用
var bytes = jsonString.codeUnits;
问题出在哪里?@GünterZöchbauer我只是想知道如何将json编码为字节并发送到我的websocket服务器,就像Python代码中的操作一样。