使用 c# 和 WebSocket4Net 发送 Json

Posted

技术标签:

【中文标题】使用 c# 和 WebSocket4Net 发送 Json【英文标题】:Sending Json with c# and WebSocket4Net 【发布时间】:2017-08-21 03:37:08 【问题描述】:

我正在尝试通过 C# 中的 websockets 将以下 JSON 数据发送到服务器:

              
       "method": "ms.remote.control",
        "params": 
            "Cmd": "Click",
            "DataOfCmd": key,
            "Option": "false",
            "TypeOfRemote": "SendRemoteKey"
        
    

我正在使用以下代码将数据发送到服务器:

string json = @"""method"":""ms.remote.control"",""params"":""""Cmd"":""Click"",""DataOfCmd"":""KEY_MENU"",""Option"":""false"",""TypeOfRemote"":""SendRemoteKey""""";

string message = JsonConvert.SerializeObject(json);

websocketClient.Send(message);

这是序列化后的json数据输出:

"\"method\":\"ms.remote.control\",\"params\":\"\"Cmd\":\"Click\",\"DataOfCmd\":\"KEY_MENU\",\"Option\":\"false\",\"TypeOfRemote\":\"SendRemoteKey\"\""

我从服务器收到以下响应:

收到消息。服务器回答:

"event":"ms.error","data":"message":"missing method field from message"

我的 json 格式是否不正确?我知道 json 数据是正确的,因为消息在我试图从中移植的 python 程序中运行良好。

【问题讨论】:

如何获取服务器应答?谢谢 【参考方案1】:

我想通了。服务器要求 json 的格式与上述完全相同。我将json格式化如下,命令成功!

 string json = @"

            ""method"": ""ms.remote.control"",
            ""params"": 
                             ""Cmd"": ""Click"",
                ""DataOfCmd"": ""KEY_VOLUP"",
                ""Option"": ""false"",
                ""TypeOfRemote"": ""SendRemoteKey""
            
                    ";

【讨论】:

以上是关于使用 c# 和 WebSocket4Net 发送 Json的主要内容,如果未能解决你的问题,请参考以下文章

Websocket4Net 发送多条消息

Websocket4Net 只接收第一条消息的回复

Websocket客户端断开websocket4net

使用 WebSocket4Net 的 Http 身份验证

WebSocket4Net 简单示例因“操作已在进行中”而失败

C# WebSocketServer wss:// 连接失败