设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: admin
打印 上一主题 下一主题

有关AnyChat平台用户身份验证与第三方平台集成的问题

[复制链接]

249

主题

2967

帖子

9089

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9089
板凳
 楼主| 发表于 2013-6-21 12:02:12 | 只看该作者
若在AnyChat之外已经进行了一次用户身份验证,只是希望用AnyChat实现流媒体通信服务,而且不希望在业务服务器(BusinessServer.exe)上设计得太复杂,不希望连接数据库,则可以通过如下的方式巧妙的回避AnyChat的登录流程,而且还可保持userid与第三方平台一致。

如果在第三方平台上用户身份验证之后,获得的userid为108,则可以将userid转换为字符串“108”进行AnyChat平台登录,密码可以用任意字符串代替,不为空即可,如:BRAC_Login("108", "demo", 0);

在业务服务器的【OnVerifyUser】回调函数中将username字符串转换为整型值,传给userid,同时返回0即可。
  1. // 用户身份验证回调函数定义
  2. DWORD CALLBACK VerifyUserCallBack(LPCTSTR lpUserName,LPCTSTR lpPassword, LPDWORD lpUserID, LPDWORD lpUserLevel, LPTSTR lpNickName,DWORD dwNCLen, LPVOID lpUserValue)
  3. {
  4.     *lpUserID = atoi(lpUserName);
  5.     return 0;
  6. }
复制代码
这样在客户端的登录消息【OnLoginSystem(userid=108, errorcode=0)】就是第三方平台的userid了。
回复 支持 反对

使用道具 举报

249

主题

2967

帖子

9089

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9089
沙发
 楼主| 发表于 2013-6-21 11:41:52 | 只看该作者
除了采用独立进程的业务服务器(BusinessServer.exe)来实现业务逻辑处理,AnyChat还支持一种更简洁的“SDK Filter Plus”工作模式,如下图所示:


将业务逻辑封装在一个动态库中供核心服务器(AnyChatCoreServer.exe)调用。有关SDKFilterPlus的示例源代码可以在AnyChat for Windows SDK的【src\server\c++\SDKFilterPlus】目录下找到。
编译好动态库之后,在核心服务器配置文件(AnyChatCoreServer.ini)中进行配置:
  1. [Function Settings]
  2. SDKFilterPlus=SDKFilterPlus.dll
复制代码
然后保存配置文件,将编译好的动态库(SDKFilterPlus.dll,Linux下为:SDKFilterPlus.so)拷贝到服务器程序所在的当前目录下,最后重启核心服务器程序即可,会在核心服务器的日志文件(AnyChatCoreServer.log)中输出相关的加载信息。


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AnyChat ( 粤ICP备13022410号-1 )  

GMT+8, 2024-6-17 02:17 , Processed in 0.105864 second(s), 20 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表