代码之家  ›  专栏  ›  技术社区  ›  Mattia

websocket c上的jsonrpc客户端#

  •  0
  • Mattia  · 技术社区  · 6 年前

    我需要一个json-rpc客户端通过websocket与服务器通信。特别是,我需要创建一个接口并使用方法向服务器发送json请求。

    有人知道怎么做吗?

    我找到了 StreamJsonRpc 库,但它在流上工作,而不是在websocket上。

    我能从websocket连接获取流并将它发送到 streamjsonrpc ?
    你还有别的想法吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   plampot    6 年前

    你只需要 Json.net WebSocket4Net .

    你可以看到 there .

    using Newtonsoft.Json;
    using Newtonsoft.Json.Linq;
    using System;
    using System.Security.Authentication;
    using WebSocket4Net;
    
    namespace LightStreamSample
    {
        class WebSocket4NetSample
        {
            static void Main(string[] args)
            {
                var channelName = "[your websocket server channel name]";
                // note: reconnection handling needed.
                var websocket = new WebSocket("wss://[your web socket server websocket url]", sslProtocols: SslProtocols.Tls12);
                websocket.Opened += (sender, e) =>
                {
                    websocket.Send(
                        JsonConvert.SerializeObject(
                            new
                            {
                                method = "subscribe",
                                @params = new { channel = channelName },
                                id = 123,
                            }
                        )
                    );
                };
                websocket.MessageReceived += (sender, e) =>
                {
                    dynamic data = JObject.Parse(e.Message);
                    if (data.id == 123)
                    {
                        Console.WriteLine("subscribed!");
                    }
                    if (data.@params != null)
                    {
                        Console.WriteLine(data.@params.channel + " " + data.@params.message);
                    }
                };
    
                websocket.Open();
    
                Console.ReadKey();
            }
        }
    }