我想实时从Poloniex取回蜱。他们用沼泽来做这个。我是通过nugget WampSharp安装的,发现了以下代码:
static async void MainAsync(string[] args)
{
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();
}但是无论在等待channel.open(),我有以下错误: HHTP 502坏网关
你知道问题在哪里吗?
先谢谢你
发布于 2017-09-13 02:26:38
Poloniex服务似乎无法处理这么多的联系。这就是为什么您会得到HTTP 502错误网关错误。您可以尝试使用重新连接器机制,以尝试定期连接。
static void Main(string[] args)
{
var channelFactory = new DefaultWampChannelFactory();
var channel = channelFactory.CreateJsonChannel("wss://api.poloniex.com", "realm1");
Func<Task> connect = async () =>
{
await Task.Delay(30000);
await channel.Open();
var tickerSubject = channel.RealmProxy.Services.GetSubject("ticker");
var subscription = tickerSubject.Subscribe(evt =>
{
var currencyPair = evt.Arguments[0].Deserialize<string>();
var last = evt.Arguments[1].Deserialize<decimal>();
Console.WriteLine($"Currencypair: {currencyPair}, Last: {last}");
},
ex => {
Console.WriteLine($"Oh no! {ex}");
});
};
WampChannelReconnector reconnector =
new WampChannelReconnector(channel, connect);
reconnector.Start();
Console.WriteLine("Press a key to exit");
Console.ReadKey();
}这是基于这代码示例的。
发布于 2017-09-09 13:34:26
去掉Console.WriteLine,它会干扰您的代码。
https://stackoverflow.com/questions/46131133
复制相似问题