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

連接阿里物聯(lián)網(wǎng)平臺(tái) Stomp連接失敗

純黑

https://help.aliyun.com/document_detail/172487.html?spm=a2c4g.11186623.2.23.570c719fqNPeJp#concept-2553070

我用這個(gè)官方大大這個(gè)月發(fā)的demo一直提示我連接失敗

https://wenda.workerman.net/question/5741

截圖

這個(gè)是我設(shè)置的參數(shù)
截圖

我用阿里官方提供的stomp demo是可以連上的

4945 12 1
12個(gè)回答

純黑

另外官方大大是否可以提供個(gè)阿里云 消息隊(duì)列 RocketMQ 版 的workman demo 官方只提供了http的 tcp暫時(shí)沒有
https://help.aliyun.com/document_detail/114448.html?spm=a2c4g.11186623.6.589.4a107e80jcLzas

  • walkor 2020-10-24

    我這沒有RocketMQ客戶端,你用他們http接口吧

  • 純黑 2020-10-24

    http我看也是用死循環(huán)監(jiān)聽 開進(jìn)程 我沒這樣搞過 不知道有沒有啥問題

walkor 打賞

發(fā)下你的完整調(diào)用代碼。不要只截圖代碼片段。
debug設(shè)置為true,看下輸出日志

  • 純黑 2020-10-24

    發(fā)到下面評(píng)論了

純黑

截圖
那個(gè)問題解決了
是主題不存在導(dǎo)致的 現(xiàn)在 一啟動(dòng)就斷開連接

截圖

  • walkor 2020-10-24

    看阿里云文檔例子 61614是ssl端口,你需要把ssl選項(xiàng)加上。
    $client = new \Workerman\Stomp\Client('stomp://域名.com:61614', [
    'debug' => true,
    'login' => 'xx',
    'passcode' => 'xx',
    'ssl' =>['verify_peer' => true, 'verify_peer_name' => false]
    ]);

  • 純黑 2020-10-24

    報(bào)錯(cuò)了

純黑

截圖

截圖

  • walkor 2020-10-24

    文件頭部加上 use Workerman\Stomp\Client;

walkor 打賞

代碼示例

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

use Workerman\Worker;
use Workerman\Stomp\Client;

$worker = new Worker();
$worker->onWorkerStart = function(){
    $accessKey = "x";
    $accessSecret = "x";
    $consumerGroupId = "DEFAULT_GROUP";
    //iotInstanceId:購買的實(shí)例請?zhí)顚憣?shí)例ID,公共實(shí)例請?zhí)羁兆址?"。
    $iotInstanceId = "";
    $timeStamp = round(microtime(true) * 1000);
    //簽名方法:支持hmacmd5,hmacsha1和hmacsha256。
    $signMethod = "hmacsha1";
    $clientId = "client-1";
    //userName組裝方法,請參見AMQP客戶端接入說明文檔。
    //若使用二進(jìn)制傳輸,則userName需要添加encode=base64參數(shù),服務(wù)端會(huì)將消息體base64編碼后再推送。具體添加方法請參見下一章節(jié)“二進(jìn)制消息體說明”。
    $userName = $clientId . "|authMode=aksign"
        . ",signMethod=" . $signMethod
        . ",timestamp=" . $timeStamp
        . ",authId=" . $accessKey
        . ",iotInstanceId=" . $iotInstanceId
        . ",consumerGroupId=" . $consumerGroupId
        . "|";
    $signContent = "authId=" . $accessKey . "&timestamp=" . $timeStamp;
    //計(jì)算簽名,password組裝方法,請參見AMQP客戶端接入說明文檔。
    $password = base64_encode(hash_hmac("sha1", $signContent, $accessSecret, $raw_output = TRUE));
    $client = new Client('stomp://xxx.iot-amqp.cn-shanghai.aliyuncs.com:61614', array(
        'debug'      => true,
        'login'      => $userName,
        'passcode'   => $password,
        'heart_beat' => 30000,
        'ssl'        => ['verify_peer' => true, 'verify_peer_name' => false],
    ));
    $client->onConnect = function(Client $client) {
        $client->subscribe('/topic/#', function(Client $client, $data) {
            var_export($data);
        });
    };
    $client->onError = function ($e) {
        echo $e;
    };
    $client->connect();
};
Worker::runAll();
  • 純黑 2020-10-24

    我測試可以連上 但是 只要有消息過來 就直接斷開了不知道為啥

純黑

截圖
只要有消息過來 就直接斷開了 然后重連

  • walkor 2020-10-24

    打開文件 vendor/workerman/stomp/src/Protocols/Stomp.php,找到input方法,echo $buffer;,看下發(fā)來的數(shù)據(jù)格式。

  • 純黑 2020-10-24

    好像沒有進(jìn)來 我打印了沒有反應(yīng) 就直接斷了

  • 純黑 2020-10-24

    發(fā)布一個(gè)消息后立馬斷開 重連 之后一直在重連

  • walkor 2020-10-24

    改完代碼記得restart。如果沒打印,說明你找錯(cuò)文件了。

  • 純黑 2020-10-24

    找到了 截圖已發(fā)

純黑

截圖

  • 暫無評(píng)論
純黑

截圖

  • 暫無評(píng)論
純黑

截圖

  • walkor 2020-10-24

    看到了,阿里云這stomp協(xié)議不完善,沒有content-length頭,導(dǎo)致無法包長無法算出來。我兼容下。

  • 純黑 2020-10-24

    好 麻煩了

  • walkor 2020-10-24

    更新下 workerman/stomp 到1.0.3或者后續(xù)的更高版本

  • 純黑 2020-10-24

    好的 麻煩了

  • 純黑 2020-10-27

    @1:好像一段時(shí)間沒有消息過來就會(huì)斷開重連 這個(gè)也可以設(shè)置心跳吧?
    $worker->pingInterval = 30; 截圖已發(fā)

  • 純黑 2020-10-27

    @1:我剛設(shè)置了一下 好像沒用 還是斷開重連了

純黑

截圖
好像一段時(shí)間沒有消息過來就會(huì)斷開 這個(gè)也可以設(shè)置心跳吧?
$worker->pingInterval = 30;

  • 純黑 2020-10-27

    我剛設(shè)置了一下 好像沒用 還是斷開重連了

  • walkor 2020-10-27

    我不清楚阿里云的有沒有心跳。你看下他們文檔。有沒有心跳,心跳格式

  • 純黑 2020-10-27

    我發(fā)最新的回復(fù)了 要設(shè)置一個(gè)參數(shù)

walkor 打賞

更新workerman/stomp 到1.0.4或者后續(xù)的更高版本,已經(jīng)增加了心跳支持。
用法:

$client = new Client('stomp://地址:端口', array(
    'debug'    => true,
    'login'    => $userName,
    'passcode' => $password,
    'heart_beat' => 10000, // 代表10秒發(fā)送一個(gè)心跳
    'ssl'      => ['verify_peer' => true, 'verify_peer_name' => false],
));
年代過于久遠(yuǎn),無法發(fā)表回答
??