2016-07-23 30 views
8

Đây là mã rất đơn giản của tôi bằng cách sử dụng phiên bản phát hành trước mới nhất của WampSharp:WampSharp không thể kết nối với Poloniex?

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

Không làm việc, mặc dù các mã trong đăng ký không bao giờ chạy. Đã thử nó với CreateJsonChannel là tốt, mà không hoạt động hoặc.

Bất kỳ ý tưởng nào có thể sai?

+0

Tôi đang cố sử dụng api websocket api. Bạn đã có mã mẫu làm việc chưa? – Luther

+0

bạn đã giải quyết nó chưa? –

+0

Đó là API của họ, không phải mã của bạn. API của họ không gửi dữ liệu. Tôi đã thử nó với ví dụ node.js đã đăng và không có dữ liệu nào quay trở lại. – Simoyd

Trả lời

1

Mã của bạn hoạt động tốt. Chỉ cần thoát khỏi Console.ReadLine - nó khóa luồng WebSocket và do đó WampSharp không thể nhận thêm bất kỳ thông báo nào nữa. Thay vào đó, bạn có thể thêm một Console.ReadLine vào Main của mình.

Xem thêm blog post.

+0

Điều đó sẽ không có ý nghĩa như ví dụ của chúng cho thấy chính xác điều này: http://wampsharp.net/wamp2/roles/subscriber/getting-started-with-subscriber/ – YesMan85

+1

Sự khác biệt là trong ví dụ bạn đã liên kết, chúng sử dụng '' 'channel.Open.Wait (5000)' '' và không '' 'đang chờ channel.Open()' ''. Từ khóa chờ đợi làm cho các dòng tiếp theo chạy trên chuỗi của WebSocket. – darkl

+0

Tôi hiểu rồi, tôi đã sửa chữa. – YesMan85

Các vấn đề liên quan