请问下大大 有做过类似淘宝推送消息处理的案例呢?


  • **目前是这样的 我想建立长连接 接受淘宝推送过来的消息 进行处理。

淘宝只给出了C# 跟 java 的 代码

这是C# 的代码 如下:**


TmcClient client = new TmcClient( "appkey" , "appsecret" , "default" ); // 关于default参考消息分组说明
client.OnMessage += (s, e) =>
{
try
{
Console.WriteLine(e.Message.Topic);
Console.WriteLine(e.Message.Content);
// 默认不抛出异常则认为消息处理成功
}
catch (Exception exp)
{
Console.WriteLine(exp.StackTrace);
e.Fail(); // 消息处理失败回滚,服务端需要重发
}
};
client.Connect( "ws://mc.api.taobao.com/" ); // 消息环境地址



-
请问 如果用 workerman 写的话 应该怎么写呢???? 有类似的例子吗?
已邀请:

641221621 - workerman!

赞同来自:

因为我看官方文档里面


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

// 创建一个Worker监听2346端口,使用websocket协议通讯
$ws_worker = new Worker("websocket://0.0.0.0:2346");

// 启动4个进程对外提供服务
$ws_worker->count = 4;

// 当收到客户端发来的数据后返回hello $data给客户端
$ws_worker->onMessage = function($connection, $data)
{
// 向客户端发送hello $data
$connection->send('hello ' . $data);
};

// 运行worker
Worker::runAll();


这是使用WebSocket协议对外提供服务 有没有可以监听 不如淘宝的 ws://mc.api.taobao.com/

这个链接的方法了 只要那边又数据推送 这边来业务处理数据!

walkor

赞同来自:

需要用php写一个能解析websocket客户端协议的类。
把workerman当做客户端来主动向ws://mc.api.taobao.com/ 发起连接,并接收数据。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是淘宝发来的数据,数据是websocket协议的,
// 有个websocket头,会是乱码,要自己按照客户端websocket协议解析
};
$con_to_taobao->connect();
};
Worker::runAll();


AsyncTcpConnection异步连接通讯见手册说明
http://doc3.workerman.net/worker-development/__construct.html

要回复问题请先登录注册