【发布时间】:2018-10-31 23:50:34
【问题描述】:
我有一个类似 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 = {
"msg_type": "hi",
"payload": msg
};
return outMsg;
}
我想将此消息发送到只处理json请求的websocket服务器,如果是纯文本或错误格式的json,它将拒绝连接。
这是在做什么:
void _sayHi() async {
_token = await _prefs.getToken();
_userAddr = await _prefs.getUserAddr();
var hi = getHiMsg(_token, _userAddr);
print(hi);
channel.sink.add(hi);
}
channel 只是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 和 Flutter 中实现这一点?我对 Dart 字节操作不太熟悉。
【问题讨论】:
-
哪里出了问题?
-
@GünterZöchbauer 我只是想知道如何将 json 编码为字节并发送到我的 websocket 服务器,就像 Python 代码中的相同操作一样。