EasyDarwin 增加restful接口返回值

   因为在工作需要的时候发现EasyDarwin ,现有resful接口上缺少回复信息,因此需要自己加上创建源的状态回复。于是准备加上该功能,方便业务服务器进行管理和异常处理。

    http 请求在 HTTPSession::ExecNetMsgEasyUDPModuleReq 中处理http的请求

 1、在自定义模块上添加如下代码

 if(clientSesRef != NULL)// 不允许相同
{
//session = (EasyUDPSession*)clientSesRef->GetObject();
nEasyErrCode = -1;
}
else
{
              session = NEW EasyUDPSession(inParams->inListenAddr, inParams->inCastAddr,inParams->inPort, inParams->inIsSSM, inParams->inStreamName);
      OS_Error theErr = sUDPSessionMap->Register(session->GetRef());
      Assert(theErr == QTSS_NoErr);
      OSRef* debug = sUDPSessionMap->Resolve(&streamName);
      Assert(debug == session->GetRef());
      nEasyErrCode = session->UDPSessionStart();
      sUDPSessionMap->Release(session->GetRef());
}

    return nEasyErrCode';


 2、nEasyErrCode的值返回给  CallDispatch函数

如下代码片段:

QTSSModule* theModule = QTSServerInterface::GetModule(QTSSModule::kEasyUDPOpenRole, fCurrentModule);
  //获取调用返回的错误码,可以定义0表示成功,<0表示失败,具体错误码可以自己定义

 theErr = theModule->CallDispatch(Easy_UDPOpen_Role, &params);

theErr 就是错误码

3、构造回应的报文:

EasyMsgSCStartHLSACK  对jsoncpp 进行了封装,使用很方便

如下代码生成了返回的json 报文

 EasyMsgSCStartHLSACK ack; 

ack.SetHeaderValue(EASY_TAG_VERSION, "1.0");
if (theErr <0)
{
ack.SetBodyValue<char>("errorcode",'0');
}
else
{
 ack.SetBodyValue<char>("errorcode",'1');
}

最后和原来的代码一致不需要修改代码

(本人使用的版本为找官方的定制版本,打开的模块是在开源版本没有的,但是处理请求是一致的)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值