【问题标题】:WampSharp unable to connect to Poloniex?WampSharp 无法连接到 Poloniex?
【发布时间】:2016-07-23 00:57:10
【问题描述】:

这是我使用最新预发布版 WampSharp 的非常简单的代码:

        var channelFactory = new DefaultWampChannelFactory();
        var channel = channelFactory.CreateMsgpackChannel("wss://api.poloniex.com", "realm1");
        await channel.Open();

        var realmProxy = channel.RealmProxy;

        Console.WriteLine("Connection established");

        int received = 0;
        IDisposable subscription = null;

        subscription =
            realmProxy.Services.GetSubject("ticker")
                      .Subscribe(x =>
            {
                Console.WriteLine("Got Event: " + x);

                received++;

                if (received > 5)
                {
                    Console.WriteLine("Closing ..");
                    subscription.Dispose();
                }
            });

        Console.ReadLine();

虽然不起作用,订阅中的代码永远不会运行。用CreateJsonChannel也试过了,也没用。

有什么想法可能是错的吗?

【问题讨论】:

  • 我正在尝试使用 poloniex websocket api。你有工作示例代码吗?
  • 你解决了吗?
  • 这是他们的 API,而不是你的代码。他们的 API 没有发送数据。我用发布的 node.js 示例进行了尝试,也没有数据返回。

标签: c# wamp wampsharp


【解决方案1】:

您的代码运行良好。只需摆脱 Console.ReadLine - 它会阻止 WebSocket 线程,因此 WampSharp 无法获得任何进一步的消息。 您可以改为将 Console.ReadLine 添加到 Main。

另见blog post

【讨论】:

  • 这是没有意义的,因为他们的例子正好说明了这一点:wampsharp.net/wamp2/roles/subscriber/…
  • 不同之处在于,在您链接到的示例中,他们使用channel.Open.Wait(5000) 而不是await channel.Open()。 await 关键字导致下一行在 WebSocket 的线程上运行。
猜你喜欢
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
  • 2014-09-14
  • 1970-01-01
  • 2018-02-07
  • 1970-01-01
  • 2019-12-07
  • 1970-01-01
相关资源
最近更新 更多