国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

workerman 異步訪問外部wss端口,并設(shè)置本地ssl證書

json_decode

我本地配置的ssl沒有問題

<?php

use Workerman\Connection\AsyncTcpConnection;
use Workerman\Timer;
use Workerman\Worker;

require_once("./vendor/autoload.php");

$worker = new Worker();
$worker->count = 1;

$worker->onWorkerStart = function ($worker) {
    // 設(shè)置訪問對(duì)方主機(jī)的本地ip及端口以及ssl證書
    $context_option = array(
        'socket' => array(
            // ip必須是本機(jī)網(wǎng)卡ip,并且能訪問對(duì)方主機(jī),否則無效
            'bindto' => '192.168.0.39',
        ),
        // ssl選項(xiàng),參考https://php.net/manual/zh/context.ssl.php
        'ssl' => array(
            // 本地證書路徑。 必須是 PEM 格式,并且包含本地的證書及私鑰。
            'local_cert' => './mkcert+4.pem',
            // local_cert 文件的密碼。
            'passphrase' => './mkcert+4-key.pem',
            // 是否允許自簽名證書。
            'allow_self_signed' => true,
            // 是否需要驗(yàn)證 SSL 證書。
            'verify_peer' => false
        )
    );

    $con = new AsyncTcpConnection('ws://socket.idcd.com:1443', $context_option);
    $con->onConnect = function (AsyncTcpConnection $con) {
//        //定時(shí)給服務(wù)端推送數(shù)據(jù)
        Timer::add(2, function () use ($con) {
            $time = date("Y-m-d H:i:s ");
            $con->send('my time is ' . $time);
        });

    };
    // 設(shè)置以ssl加密方式訪問
    $con->transport = 'ssl';
    $con->onMessage = function (AsyncTcpConnection $con, $data) {
        echo($data . "------hello----" . PHP_EOL);
    };
    $con->onClose = function (AsyncTcpConnection $con) {
        // 如果連接斷開,則在1秒后重連
        $con->reConnect(1);
    };
    $con->onError = function ($con, $code, $msg) {
        echo "Error code:$code msg:$msg\n";
    };

    $con->connect();
};

Worker::runAll();

但是運(yùn)行上面的代碼,workman會(huì)提示 SSL handshake error: stream_socket_enable_crypto(): Unable to set private key file 我也發(fā)現(xiàn)了,有好幾個(gè)遇到我類似的問題,但是沒有解答

麻煩大佬們,能寫一個(gè)實(shí)例不?連接到 wss://socket.idcd.com:1443 這個(gè)地址

3203 1 0
1個(gè)回答

latin

搞不懂,這個(gè)有啥疑問么?
ws://echo.websocket.org:443 改成 ws://socket.idcd.com:1443 唄

  • json_decode 2022-01-13

    服務(wù)器那邊用的是wss 就是wss://socket.idcd.com:1443

  • json_decode 2022-01-13

    但是 我改成 wss://socket.idcd.com:1443 就直接報(bào)錯(cuò)了。class \Protocols\Wss not exist

  • latin 2022-01-13

    ws://socket.idcd.com:1443 啊,不是 wss://socket.idcd.com:1443

  • json_decode 2022-01-13

    服務(wù)器上強(qiáng)制要用wss 你把wss直接改為ws是行不通的!

  • latin 2022-01-13

    截圖
    你可能手冊(cè)沒看全。他是 ws + ssl 就是wss了

  • json_decode 2022-01-13

    ssl標(biāo)準(zhǔn)的是443,但是這個(gè)wss地址他把端口給改了呢,總不能加兩個(gè)端口號(hào)吧

  • json_decode 2022-01-13

    方便不,要不麻煩幫忙寫一個(gè)實(shí)例唄。測(cè)試url是:https://www.idcd.com/tool/socket 這里面有測(cè)試wss的地址呢

  • latin 2022-01-13

    看服務(wù)端端口號(hào)是多少啊,是多少寫多少唄。是標(biāo)準(zhǔn)的443就寫443唄

  • latin 2022-01-13

    http://www.wtbis.cn/doc/workerman/faq/as-wss-client.html
    直接用手冊(cè)里的例子2,改下域名就行了啊,搞不懂為什么簡(jiǎn)單的事情搞不定

  • latin 2022-01-13

    客戶端不用設(shè)置什么證書。除非服務(wù)端有特別的需要。

  • json_decode 2022-01-13

    好的,謝謝! 按照你說的,搞定了,不需要配置客戶端

年代過于久遠(yuǎn),無法發(fā)表回答
??