使用PHP客户端连接到Signalr Websocket服务器?

时间:2019-10-17 11:55:47

标签: php laravel websocket signalr

我正在尝试找到一种使用Bittrex的WebSocket来从我的PHP Laravel项目中订阅和接收实时数据的方法。 关于文档,他们只谈论可用的方法,没有谈论如何建立连接。

我对WebSockets的了解非常有限,但是,我设法像以前那样连接到Kraken的WebSockets:

const socket = new WebSocket('wss://ws.kraken.com');
const pairs = [
    //a list of asset pairs available on Kraken
];

const subscription = {
    "event": "subscribe",
    "pair": pairs,
    "subscription": {
        "name": "ticker"
    }
}
// Connection opened
socket.addEventListener('open', function (event) {
    socket.send(JSON.stringify(subscription));
});


//Somewhere else in the code
socket.addEventListener('message', (event) => {
    const data = JSON.parse(event.data);
});

让我感到困惑的是Bittrex上的Url,它是:https://socket.bittrex.com/signalr(如您所见,它以https开头) 而在Kraken上,它是:wss://ws.kraken.comwss,据我所知,这是正确的格式)

我尝试以与Kraken相同的方式连接到Bittrex,并且还尝试使用此https://github.com/ratchetphp/Pawl与PHP进行连接,但是都失败,并显示有关无效网址的错误让我认为它们的工作方式完全不同。

我感觉自己正在丢失某些东西,甚至不知道我在寻找什么,任何帮助我向正确的研究方向指明方向的人,都是感激的。

谢谢!

1 个答案:

答案 0 :(得分:0)

这是因为Bittrex根本不提供WebSockets API。他们提供的只是所谓的SignalR。

您可以尝试搜索SignalR PHP库,例如这样的库:https://packagist.org/packages/alexwight/php-signalr-client