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

使用AsyncTcpConnection作為websocket客戶端時(shí)出現(xiàn)報(bào)錯

flareheart
<?php
require_once 'vendor/autoload.php';

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

$worker = new Worker();
$worker->onWorkerStart = function($worker) {
    // ssl需要訪問443端口
    $con = new AsyncTcpConnection('ws://api.xxxx.com:443/ws');

    // 設(shè)置以ssl加密方式訪問,使之成為wss
    $con->transport = 'ssl';

    $con->onConnect = function($con) {
        echo 'Connected';
    };

    $con->onMessage = function($con, $data) {

    };

    $con->connect();
};

Worker::runAll();

出現(xiàn)了兩處警告:
Warning: stream_socket_client(): Failed to enable crypto in D:\Visual-NMP-x64\www\WebSocket-API-demos-master\WebSocket_PHP-demo\workerman\Connection\AsyncTcpConnection.php on line 178
以及
Warning: stream_socket_client(): unable to connect to ssl://api.xxxx.com:443 (Unknown error) in D:\Visual-NMP-x64\www\WebSocket-API-demos-master\WebSocket_PHP-demo\workerman\Connection\AsyncTcpConnection .php on line 178

首先是無法連接;
其次,最初websocket的地址是 wss://api.xxxx.com/ws ,在AsyncTcpConnection 的connect方法中,$this->_remoteURI沒有被拼接上去。
我改了這個(gè)部分的代碼,但是錯誤依然存在。但是單獨(dú)使用stream_socket_client接口測試時(shí),是可以正常連接的,區(qū)別就在于我只傳了一個(gè)參數(shù),而AsyncTcpConnection中傳了很多:
$this->_socket = stream_socket_client("{$this->transport}://{$this->_remoteHost}:{$this->_remotePort}{$this->_remoteURI}", $errno, $errstr, 0, STREAM_CLIENT_ASYNC_CONNECT);

因?yàn)閣orkerman是composer引入的,不想修改這部分代碼,免得今后難以升級,所以希望官方能解決類似問題。

6716 2 0
2個(gè)回答

walkor 打賞

這個(gè)是火幣官方的websocket接口demo吧。

用最新版workerman 3.5.5 試下, https://github.com/walkor/Workerman
這個(gè)版本window linux系統(tǒng)都可以用

  • 暫無評論
yukai

你好,我切換為workerman 3.5.15版本之后還是不行,ws地址它自動加上了80端口,怎么去掉啊
?

  • walkor 2018-10-16

    像題主那樣,地址里加上端口443

  • yukai 2018-10-16

    @1:請問從ws切換到wss需要修改那些地方啊,我現(xiàn)在ws已經(jīng)可以使用了

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