flatter是否将json作为字节发送到websocket服务器?

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

我有一条类似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;
  }
我想把这个消息发送到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代码中的操作一样。