JSONRpc Client over websocket C#

Posted

技术标签:

【中文标题】JSONRpc Client over websocket C#【英文标题】: 【发布时间】:2018-06-22 11:48:12 【问题描述】:

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

有人知道怎么做吗?

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

我可以从 websocket 连接中获取流并将其传递给StreamJsonRpc吗? 您还有其他想法吗?

【问题讨论】:

【参考方案1】:

您只需要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();
        
    

【讨论】:

谢谢,我按照您的建议开发我的应用程序

以上是关于JSONRpc Client over websocket C#的主要内容,如果未能解决你的问题,请参考以下文章

Spark- Spark Yarn模式下跑yarn-client无法初始化SparkConext,Over usage of virtual memory

Jsonrpc4j 和 go 的 rpc/jsonrpc 之间的 JSONRPC 格式不同

远程+查询+Over+SSH+隧道

那里有测试 JsonRpc 服务器吗?

jsonrpc

Geth websocket over nginx 反向代理