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

連接阿里物聯網平臺 Stomp連接失敗

純黑

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

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

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

截圖

這個是我設置的參數
截圖

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

5200 12 1
12個回答

純黑

另外官方大大是否可以提供個阿里云 消息隊列 RocketMQ 版 的workman demo 官方只提供了http的 tcp暫時沒有
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)聽 開進程 我沒這樣搞過 不知道有沒有啥問題

walkor 打賞

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

純黑

截圖
那個問題解決了
是主題不存在導致的 現在 一啟動就斷開連接

截圖

  • walkor 2020-10-24

    看阿里云文檔例子 61614是ssl端口,你需要把ssl選項加上。
    $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

    報錯了

純黑

截圖

截圖

  • 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:購買的實例請?zhí)顚憣嵗齀D,公共實例請?zhí)羁兆址?"。
    $iotInstanceId = "";
    $timeStamp = round(microtime(true) * 1000);
    //簽名方法:支持hmacmd5,hmacsha1和hmacsha256。
    $signMethod = "hmacsha1";
    $clientId = "client-1";
    //userName組裝方法,請參見AMQP客戶端接入說明文檔。
    //若使用二進制傳輸,則userName需要添加encode=base64參數,服務端會將消息體base64編碼后再推送。具體添加方法請參見下一章節(jié)“二進制消息體說明”。
    $userName = $clientId . "|authMode=aksign"
        . ",signMethod=" . $signMethod
        . ",timestamp=" . $timeStamp
        . ",authId=" . $accessKey
        . ",iotInstanceId=" . $iotInstanceId
        . ",consumerGroupId=" . $consumerGroupId
        . "|";
    $signContent = "authId=" . $accessKey . "&timestamp=" . $timeStamp;
    //計算簽名,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ā)來的數據格式。

  • 純黑 2020-10-24

    好像沒有進來 我打印了沒有反應 就直接斷了

  • 純黑 2020-10-24

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

  • walkor 2020-10-24

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

  • 純黑 2020-10-24

    找到了 截圖已發(fā)

純黑

截圖

  • 暫無評論
純黑

截圖

  • 暫無評論
純黑

截圖

  • walkor 2020-10-24

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

  • 純黑 2020-10-24

    好 麻煩了

  • walkor 2020-10-24

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

  • 純黑 2020-10-24

    好的 麻煩了

  • 純黑 2020-10-27

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

  • 純黑 2020-10-27

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

純黑

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

  • 純黑 2020-10-27

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

  • walkor 2020-10-27

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

  • 純黑 2020-10-27

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

walkor 打賞

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

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