阿不

不抛弃,不放弃

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  157 随笔 :: 0 文章 :: 1979 评论 :: 53 Trackbacks

最近使用DotMSN开发MSN机器人,由于使用的是代理上网,在使用中发现虽然DotMSN支持代理,但是好像是支持的不够彻底,使用Socks5代理只能登录,并不能发送消息。检查了代码,发现在发送信息的SocketClient并没有使用指定的代理服务器。这个版本修复了这个问题,并且通过代理已经可以正常使用DotMSN的各项功能。

另外,DotMSN 2.0.2中在登录后在XihSolutions.DotMSN.NSMessageHandler.OnILNReceived(NSMessage message)会出现Error:Value was either too large or too small for an Int32.的异常,在这个版本中顺便也做了处理了。省得它一直在提示。

这里下载,这里是DotMSN官方版本下载。

这个版本中,还可能还会有一个问题,不能使用局域网内不同网段的代理服务器。由于目前没有用到不做处理,如果有人有需要留个贴,我会修改一个版本出来。

阿不 http://hjf1223.cnblogs.com
posted on 2008-01-07 17:42 阿不 阅读(1349) 评论(15)  编辑 收藏 所属分类: .Net相关技术OpenSource

评论

#1楼  2008-01-07 17:46 浴盆      
你好,我最近也在做DotMSN的东西,没有头绪,你能给我点提示吗?
  回复  引用  查看    

#2楼 [楼主] 2008-01-07 18:14 阿不      
@浴盆
要说使用是非常简单的。
你首先创建一个Messenger对象,在这个对象里设置好MSN帐号,密码,Proxy等信息,然后指定一些事件代理:比如登录后事件,创建会话事件,还有一些其它的需要的事件,调用Messenger的Connect进行登录。
在ConversationCreated事件可以监听到好友的会议请求,每个会话请求里一样都可以添加事件代理,监听对应的事件。
更详细的你可以看:
http://www.cnblogs.com/overred/archive/2006/05/01/390394.html
  回复  引用  查看    

#3楼  2008-01-07 20:50 浴盆      
哦,我看那些都是1.1的,不是2.0的,2.0和1.1差不少呢
  回复  引用  查看    

#4楼  2008-01-08 08:25 浴盆      
你好,下了你的DOTMSN以后我试着自己做了一下,现在已经实现基本的上线和下线功能,但是有个地方我不明白,通常客户是要加机器人好友的,机器人怎么知道谁加了它,并把它也加为好友,这样机器人上线的时候才可以被别人看到啊?
  回复  引用  查看    

#5楼 [楼主] 2008-01-08 08:31 阿不      
@浴盆
当有人加你为好友时,会触发一个ReverseAdded事件,你可以在这个事件里得到是谁把你加为好友的。
  回复  引用  查看    

#6楼  2008-01-08 20:46 浴盆      
你好,我现在捕获到这个ReverseAdded事件了
我应该怎么处理呢?我找了别人试了,他们加我好友,我捕获到了
但是他们还是没法跟我聊天,就是没法打开和我的聊天框
是不是我没加他们好友的事?
我应该怎么写Nameserver_ReverseAdded这个事件的代码呢
谢谢您啦先
  回复  引用  查看    

#7楼  2008-01-09 08:03 浴盆      
找到答案了
messenger.Nameserver.AddContactToList(e.Contact, MSNLists.AllowedList);
嘿嘿
  回复  引用  查看    

#8楼 [楼主] 2008-01-09 08:27 阿不      
在这个事件里,你不要通过他的请求就行了,代码如下:
void Nameserver_ReverseAdded(object sender, ContactEventArgs e)
{
Console.WriteLine("Nameserver_ReverseAdded");
messenger.Nameserver.AddContactToList(e.Contact, MSNLists.AllowedList);
e.Contact.OnAllowedList = true;
e.Contact.OnForwardList = true;
}
  回复  引用  查看    

#9楼  2008-01-09 10:18 浴盆      
谢谢哈
  回复  引用  查看    

#10楼  2008-01-11 21:16 浴盆      
您好:实在是不好意思,又来麻烦你了
我现在碰到两个问题,一个是MSN回复是是不是有字数限制?相同查询条件的查询,回复的数据少的话可以发过去,多的话我看 session closed了,无法收到DOTMSN的回复了
第二个就是有的时候自动下线,我用正常的MSN live messager 和DOTMSN同时开着,怎么DOTMSN掉,正常登陆不掉?
先谢谢了,希望你百忙中帮我看看,万分感谢
  回复  引用  查看    

#11楼 [楼主] 2008-01-12 08:45 阿不      
@浴盆
是不是有字符限制我倒是没有遇到过,你最长是多长字符呢?
同一个帐号,当然同时只能在一个地方登录了。
  回复  引用  查看    

#12楼  2008-01-12 16:59 压片机 [未注册用户]
您好:实在是不好意思,又来麻烦你了
http://www.nthyyj.com
http://www.haian8.com
http://www.226600.com/web
  回复  引用  查看    

#13楼  2008-01-13 10:17 浴盆      
@阿不
确实存在字数限制,我试的是400个汉字,也就是说800字节吧
字数限制的问题我已经解决了,我把回复字符按照特殊字符拆分成字符数组
循环发送了
那个自动掉些的问题怎么解决呢?我看你有个相关文章
可以保证一直都在线吗?
还有个问题就是,如果客户跟我的机器人聊天,我想让客户聊天对话框最下面状态那里显示 MSN机器人 正在输入消息 应该怎么弄呢?
  回复  引用  查看    

#14楼 [楼主] 2008-01-16 09:36 阿不      
@浴盆
有空我会发一篇关于MSN机器人的文章
  回复  引用  查看    


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-01-08 09:03 编辑过
 
另存  打印
最新IT新闻:
· Joost借道TOM在线 将正式进军中国
· 微软副总裁公开承认Vista存在问题
· 互联网DNS存在重大漏洞 黑客可能控制网络流量
· Opera提出网络标准课程 发布标准教育倡议
· SubSonic 2.1 版本发布