【问题标题】:WebRTC unable to decode text message sent from DatachannelWebRTC 无法解码从 Datachannel 发送的文本消息
【发布时间】:2015-12-13 08:55:52
【问题描述】:

我是第一次尝试使用 WebRTC 数据通道。我可以使用 WebRTC javascript 代码发送文本,并且可以从我的 WebRTC android 代码中捕获事件。

我正在遵循程序:

From JavaScript client :  
         function sendMsg(msg){
                if(dataChannel.readyState=="open"){
                    dataChannel.send(msg); //dataChannel = my datachannel object
                }
                else{
                    console.error("data channel no ready");
                }
            }

From WebRTC android client: 
        public void onMessage(final Buffer arg0) {
            byte[] bytearr = new byte[arg0.data.remaining()];
            //Case 1:
            Log.e("MSG_GOT",arg0.data.get(bytearr).toString());
            //Case 2:
            Log.e("MSG_GOT " + arg0.data.toString()); 
        }

对于案例 1: 我得到了一些不可读的数据,我认为这些数据是经过编码的。 对于案例 2: 我得到一个对象为 java.nio.ReadWriteDirectByteBuffer, status: capacity=6 position=6 limit=6 。 我将 abcdef 作为文本发送。

如何将其解码为可读文本?或者有没有WebRTC android api提供的解码功能?

【问题讨论】:

    标签: webrtc


    【解决方案1】:

    我正在使用以下函数,它在我发送字符串有效负载时起作用。

    public void onMessage(DataChannel.Buffer buffer) {
                ByteBuffer data = buffer.data;
                byte[] bytes = new byte[data.remaining()];
                data.get(bytes);
                final String message = new String(bytes);
    
                // ...
            }
    

    我记得这是来自我现在找不到的类似问题/答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      • 2013-03-23
      • 2012-02-10
      • 2015-02-02
      • 2018-06-04
      • 2017-04-10
      相关资源
      最近更新 更多