通过Websocket C#

时间:2018-06-22 11:48:12

标签: c# websocket json-rpc

我需要一个JSON-Rpc客户端才能通过websocket与服务器进行通信。特别是,我需要创建一个接口并使用方法将JSON请求发送到服务器。

有人知道该怎么做吗?

我找到了StreamJsonRpc库,但是它可以通过流而不是通过websocket来工作。

我可以从websocket连接获取流并将其粘贴到StreamJsonRpc吗?
您还有其他想法吗?

1 个答案:

答案 0 :(得分:0)

您只需要docsJson.net

您可以看到WebSocket4Net

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();
        }
    }
}