Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1814788
  • 博文数量: 241
  • 博客积分: 9862
  • 博客等级: 中将
  • 技术积分: 5206
  • 用 户 组: 普通用户
  • 注册时间: 2005-02-18 23:23
文章分类
文章存档

2011年(14)

2010年(61)

2009年(48)

2008年(118)

我的朋友

分类:

2008-10-09 14:47:59

2008-09-06 12:34
最近看到一篇文章 , 描述构建一个大型基于IM bot的一些思路。
  • Client Bot
就是Client 自己按照IM协议作为一个普通的客户连接到服务器。普通用户添加这个bot账号之后可以进一步进行相关的业务交互。Client Bot在实现各种专有IM系统中比较常见,比如MSN bot, GTalk Bot等。

Client Bot最大的问题就是能够添加的好友列表的长度限制。因为bot是一个普通的客户端,所以普通客户端最多只能添加数百个好友的问题就成了最大的障碍。

另外由于bot通常流量过大,而且会给服务器造成额外压力,很容易被服务器当做发广告信息或垃圾信息或其他业务竞争方面的原因遭受屏蔽。

综上所述,基于client bot构建一个大型业务系统不是最佳的选择。
  • Component Bot
这个只对XMPP系统而言,XMPP中Component使用专门的协议与服务器交互。实际上component有自己的domain, 如 rabbiter 使用 rabbiter@rabbiter.DOMAIN

在 ejabberd 上,component可以使用负载均衡算法,将component请求分布到多个相同component name的服务上。以实现一个跨服务器的大型业务系统。
  • S2S Bot
Bot有自己专门的域名,如 tim-bot.com, 它可以在 DNS 设置轮询使服务定向到多个具体的服务器上。但是由于此方法需要单独申请域名并配置配置独立的服务,这个做法显得有点过于复杂。

Component和S2S bot适合构建自己的基于bot的服务。比如文章开头连接中所说的(一个实现下棋游戏的bot),以及以前介绍的Rabbiter一个开源的XMPP微博客实现
阅读(1094) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~