用AsyncTcpConnection鏈接wss,在自己的電腦上都能行,在服務(wù)器上就不行了,提示Sec-WebSocket-Accept not found
<?php
use Workerman\Worker;
use Workerman\Connection\AsyncTcpConnection;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker();
$worker->count = 1;
// 進(jìn)程啟動時
$worker->onWorkerStart = function ($onWorker) {
$ws_connection = new AsyncTcpConnection("ws://stream.binance.com:443/stream?streams=luncusdt@ticker");
$ws_connection->transport = 'ssl';
// 當(dāng)TCP完成三次握手后
$ws_connection->onConnect = function ($connection) {
echo "連接成功,開始訂閱幣安現(xiàn)貨信息\n";
};
// 遠(yuǎn)程websocket服務(wù)器發(fā)來消息時
$ws_connection->onMessage = function ($connection, $data) {
var_dump($data);
$data = json_decode($data, true);
//心跳檢測
if (isset($data['ping'])) {
$msg = ["pong" => $data['ping']];
$connection->send(json_encode($msg));
}
};
// 連接上發(fā)生錯誤時,一般是連接遠(yuǎn)程websocket服務(wù)器失敗錯誤
$ws_connection->onError = function ($connection, $code, $msg) {
echo "error: $msg\n";
};
// 當(dāng)連接遠(yuǎn)程websocket服務(wù)器的連接斷開時
$ws_connection->onClose = function ($connection) {
echo "connection closed and try to reconnect\n";
// 如果連接斷開,1秒后重連
$connection->reConnect(1);
};
// 設(shè)置好以上各種回調(diào)后,執(zhí)行連接操作
$ws_connection->connect();
};
// 如果不是在根目錄啟動,則運行runAll方法
if (!defined('GLOBAL_START')) {
Worker::runAll();
}
Sec-WebSocket-Accept not found. Header:
HTTP/1.1 451
Server: awselb/2.0
Date: Thu, 20 Jun 2024 04:52:17 GMT
Content-Length: 224
Connection: keep-alive
Content-Type: application/json
本地成功執(zhí)行
服務(wù)器上報錯