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

想實(shí)現(xiàn)一個(gè)網(wǎng)頁發(fā)起請求,發(fā)送數(shù)據(jù)給智能設(shè)備,并獲取返回的模式,不成功,請教。

huboy

目的:網(wǎng)頁js發(fā)起ws請求鏈接服務(wù)器,ws經(jīng)過處理后調(diào)用 sendMessageByUid TCP鏈路發(fā)送數(shù)據(jù)給智能設(shè)備,等待智能設(shè)備響應(yīng)后將響應(yīng)結(jié)果返回網(wǎng)頁客戶端。

目前問題:debug模式運(yùn)行觀察,sendMessageByUid 已經(jīng)運(yùn)行,但是沒有向設(shè)備下發(fā)任何數(shù)據(jù)。

如何智能設(shè)備數(shù)據(jù)返回網(wǎng)頁客戶端,思路也還不是很明確。。望大神指點(diǎn)下

目前做法是這樣的

網(wǎng)頁客戶端

  <script type="text/javascript">
    var ws;

    function connect() {
        ws = new WebSocket("ws://127.0.0.1:5678");
        ws.onopen = function() {
            ws.send('tom');
        };
        ws.onmessage = function(e) {
            alert("收到服務(wù)端的消息:" + e.data);
        };
    }
  </script>

服務(wù)端

    use Workerman\Worker;
    use Workerman\Lib\Timer;
    require_once './Workerman/Autoloader.php';

    /*****************************************************************************************************/
    $tcp_worker = new Worker("tcp://0.0.0.0:2346");
    $tcp_worker->count = 4;
    /*****************************************************************************************************/

    /*****************************************************************************************************/
    $ws_worker = new Worker('websocket://0.0.0.0:5678');
    $ws_worker->count = 1;

    // 當(dāng)有客戶端發(fā)來消息時(shí)執(zhí)行的回調(diào)函數(shù)
    $ws_worker->onMessage = function($connection, $data)use($ws_worker)
    {
        //為簡單起見,UID直接用m10001代替,下同
        sendMessageByUid('m10001','01 02 03 04 05 06 07 08 09');
    };
    /*****************************************************************************************************/

    $tcp_worker->uidConnections = array();

    $tcp_worker->onConnect = function($connection)
    {
        //
    };

    // 當(dāng)收到客戶端發(fā)來的數(shù)據(jù)后返回hello $data給客戶端
    $tcp_worker->onMessage = function($connection, $data)
    {
                //簡單起見,直接uid為m10001
        $connection->uid = "m"."10001";
        $tcp_worker->uidConnections = $connection;

        // 這里如何想ws客戶端返回信息
    };

    // 針對(duì)uid推送數(shù)據(jù)
    function sendMessageByUid($uid, $message)
    {
        global $tcp_worker;
        if(isset($tcp_worker->uidConnections))
        {
            $connection = $tcp_worker->uidConnections;
            $connection->send($message);
            return true;
        }
        return false;
    }

    // 運(yùn)行
    Worker::runAll();
3350 3 1
3個(gè)回答

huboy

發(fā)覺是選錯(cuò)方向了。我這樣的需求應(yīng)該選擇gatewayworker,而不是workerman

  • 暫無評(píng)論
walkor 打賞

嗯,建議用gatewayworker,多協(xié)議通訊很容易實(shí)現(xiàn),支持多進(jìn)程多服務(wù)器部署。

workerman也能做,手冊這里有例子:http://doc3.workerman.net/worker-development/listen.html 。
這個(gè)例子只能單進(jìn)程

  • 暫無評(píng)論
wuhe6

你好,按照您的方法試了一下,sendMessageByUid('m10001','01 02 03 04 05 06 07 08 09')方法沒有發(fā)送到硬件網(wǎng)關(guān)上面。請問一下您是如何解決的?謝謝

  • 暫無評(píng)論
年代過于久遠(yuǎn),無法發(fā)表回答
??