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

請(qǐng)問(wèn)下大大 有做過(guò)類似淘寶推送消息處理的案例呢?

641221621

目前是這樣的 我想建立長(zhǎng)連接 接受淘寶推送過(guò)來(lái)的消息 進(jìn)行處理。

淘寶只給出了C# 跟 java 的 代碼

這是C# 的代碼 如下:

TmcClient client =   new  TmcClient(  "appkey"  ,   "appsecret"  ,   "default"  );   // 關(guān)于default參考消息分組說(shuō)明
client.OnMessage += (s, e) =>
{
      try
      {
          Console.WriteLine(e.Message.Topic);
          Console.WriteLine(e.Message.Content);
          // 默認(rèn)不拋出異常則認(rèn)為消息處理成功
      }
      catch  (Exception exp)
      {
          Console.WriteLine(exp.StackTrace);
          e.Fail();   // 消息處理失敗回滾,服務(wù)端需要重發(fā)
      }
};
client.Connect(  "ws://mc.api.taobao.com/"  ); // 消息環(huán)境地址
  • 請(qǐng)問(wèn) 如果用 workerman 寫(xiě)的話 應(yīng)該怎么寫(xiě)呢???? 有類似的例子嗎?

6693 2 0
2個(gè)回答

641221621

因?yàn)槲铱垂俜轿臋n里面

<?php
use Workerman\Worker;
require_once './Workerman/Autoloader.php';

// 創(chuàng)建一個(gè)Worker監(jiān)聽(tīng)2346端口,使用websocket協(xié)議通訊
$ws_worker = new Worker("websocket://0.0.0.0:2346");

// 啟動(dòng)4個(gè)進(jìn)程對(duì)外提供服務(wù)
$ws_worker->count = 4;

// 當(dāng)收到客戶端發(fā)來(lái)的數(shù)據(jù)后返回hello $data給客戶端
$ws_worker->onMessage = function($connection, $data)
{
    // 向客戶端發(fā)送hello $data
    $connection->send('hello ' . $data);
};

// 運(yùn)行worker
Worker::runAll();

這是使用WebSocket協(xié)議對(duì)外提供服務(wù) 有沒(méi)有可以監(jiān)聽(tīng) 不如淘寶的 ws://mc.api.taobao.com/

這個(gè)鏈接的方法了 只要那邊又?jǐn)?shù)據(jù)推送 這邊來(lái)業(yè)務(wù)處理數(shù)據(jù)!

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

需要用php寫(xiě)一個(gè)能解析websocket客戶端協(xié)議的類。
把workerman當(dāng)做客戶端來(lái)主動(dòng)向ws://mc.api.taobao.com/ 發(fā)起連接,并接收數(shù)據(jù)。Workerman代碼類似如下

use Workerman\Worker;
use Workerman\Connection\AsyncTcpConnection;
require_once './Workerman/Autoloader.php';

$ws_worker = new Worker();
$ws_worker->onWorkerStart = function($ws_worker)
{
    $con_to_taobao = new AsyncTcpConnection('tcp://mc.api.taobao.com:80');
    $con_to_taobao->onMessage = function($con_to_taobao, $buffer)
    {
        // $buffer是淘寶發(fā)來(lái)的數(shù)據(jù),數(shù)據(jù)是websocket協(xié)議的,
        // 有個(gè)websocket頭,會(huì)是亂碼,要自己按照客戶端websocket協(xié)議解析
    };
    $con_to_taobao->connect();
};
Worker::runAll();

AsyncTcpConnection異步連接通訊見(jiàn)手冊(cè)說(shuō)明
http://doc3.workerman.net/worker-development/__construct.html

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