У меня есть сообщение в формате 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. Если текст или неверный формат 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 and Flutter?Я не совсем знаком с операцией байтов Dart.