RTX(腾讯通) SendIM 接口sessionID申请

RTXServer SDK手册上只是说 [in] bstrSessionID 会话ID,一个GUID 标识一个窗口。

我网上搜了一大把,发现很多都是直接赋值写死了

char *_session_id =  "{45E974F3-B242-486b-8487-56C23D37FF51}";

出现的结果就是第一个发送的时候是正常的,如果后面的人一直用同一个sessionID发送给同一个人,那么你会发现后面所有人都会出现同一个会话当中,我们需要根据需求来确定是否重复使用或者申请新的seesionID

本文重点就是介绍怎样来申请新的seesionID,该ID不能乱填,RTX服务器会有验证的


boss给了方向,发现vs2008菜单 Tools->Create GUID->Registry Format 第四项,然后发现Result框中的ID都是可用的

 

当然vs既然流出了这么一项菜单,肯定有对应的SDK了

 

可以在msdn上搜索  CoCreateGuid 和 StringFromGUID2,具体自己看

 

下面给出示例代码:

 GUID id ;
 CoCreateGuid(&id);
 OLECHAR *_session_id = new OLECHAR[64];
 StringFromGUID2(id,_session_id,64);
 hr = m_pRootObj->SendIM( _bstr_t(sender), _bstr_t(pwd), _bstr_t(receivers), _bstr_t(msg), _bstr_t(_session_id));

 ...

 

over

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
/// <summary> /// 发送消息 /// </summary> /// <param name="IP">IP地址</param> /// <param name="Port">端口</param> /// <param name="ShowTime">消息停留时间(毫秒)</param> /// <param name="Receivers">接受者 (不填则发送给所有人,多个接收者用";"号分开)</param> /// <param name="MsgTitle">消息标题</param> /// <param name="MsgContent">消息内容</param> /// <returns>是否发送成功</returns> public bool SendNotify(string ShowTime, string Receivers, string MsgTitle, string MsgContent) { try { RootObj = new RTXSAPIRootObj(); //创建根对象 RootObj.ServerIP = System.Configuration.ConfigurationManager.AppSettings["RtxIp"]; //设置服务器IP RootObj.ServerPort = Convert.ToInt16(System.Configuration.ConfigurationManager.AppSettings["RtxPort"]); //设置服务器端口 RootObj.SendNotify(Receivers, MsgTitle, Convert.ToInt32(ShowTime), MsgContent); //发送消息 return true; } catch (COMException ex) { errLog.WriteEntry(ex.Message, System.Diagnostics.EventLogEntryType.Error); return false; } } /// <summary> /// 发送短信 /// </summary> /// <param name="IP">服务器IP</param> /// <param name="Port">服务器端口</param> /// <param name="Sender">发送者</param> /// <param name="Pwd">发送者密码</param> /// <param name="Receivers">接受者 (不填则发送给所有人,多个接收者用";"号分开)</param> /// <param name="Content">短信内容</param> /// <param name="SessionID">SessionID System.Guid{F41886B6-D593-4868-A25E-377C8727D7B6}</param> /// <returns>是否发送成功</returns> public bool SendIM(string Sender, string Pwd, string Receivers, string Content, string SessionID) { try { RootObj = new RTXSAPIRootObj(); //创建根对象 RootObj.ServerIP = System.Configuration.ConfigurationManager.AppSettings["RtxIp"]; //设置服务器IP RootObj.ServerPort = Convert.ToInt16(System.Configuration.ConfigurationManager.AppSettings["RtxPort"]); //设置服务器端口 if (SessionID == "") { SessionID = @"{" + System.Guid.NewGuid().ToString() + @"}"; } RootObj.SendIM(Sender, Pwd, Receivers, Content, SessionID); return true; } catch (COMException ex) { errLog.WriteEntry(ex.Message, System.Diagnostics.EventLogEntryType.Error); return false; } } 联系QQ:三三155948 联系邮箱:anbyliu※gmail.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值