惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Forbes - Security
Forbes - Security
GbyAI
GbyAI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
SegmentFault 最新的问题
Y
Y Combinator Blog
Recorded Future
Recorded Future
博客园 - Franky
I
InfoQ
T
The Blog of Author Tim Ferriss
Recent Announcements
Recent Announcements
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
T
Tailwind CSS Blog
Cyberwarzone
Cyberwarzone
The Register - Security
The Register - Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
雷峰网
雷峰网
P
Palo Alto Networks Blog
G
GRAHAM CLULEY
Cloudbric
Cloudbric
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
MongoDB | Blog
MongoDB | Blog
F
Full Disclosure
Google DeepMind News
Google DeepMind News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
C
Check Point Blog
爱范儿
爱范儿
The GitHub Blog
The GitHub Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
T
Threat Research - Cisco Blogs
U
Unit 42
N
Netflix TechBlog - Medium
The Cloudflare Blog
Spread Privacy
Spread Privacy
Microsoft Azure Blog
Microsoft Azure Blog
美团技术团队
T
Troy Hunt's Blog
Engineering at Meta
Engineering at Meta
H
Heimdal Security Blog
TaoSecurity Blog
TaoSecurity Blog
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tenable Blog
B
Blog
S
Securelist
H
Hacker News: Front Page
Google Online Security Blog
Google Online Security Blog
G
Google Developers Blog

博客园 - Enhydraboy

[ZT]MSN Messenger的口令获取源代码, MSNMessenger的口令是经过DPAPI加密后保存在注册表中 ADO Connection Strings[转贴] 农民造“飞碟”后记 Tomcat's Thread Pool Source(BT) - Enhydraboy 使用 jakata DBCP package 作 DB Connection pooling[ZT] 数据类型的不匹配可能会导致索引失效 msnlib中的MimeMessage.parse代码需要修改 我的MSN机器人终于有了自己的头像 Field6的类型说明 MSN协议中关于Send DP的研究 搞懂了MSN协议中的client id是怎么得到的 Java正则表达式详解[转载] MSN P2P资料转载 MSN协议中的msnobj浅析 MSNP10中修改自己的FRIENDLY NAME改成了RPR命令 msp10协议中的SYN好像发生了变化 准备让MSN机器人可以显示头像 jMSN开发指南 中国足球进步了
我自己的msn机器人诞生了
Enhydraboy · 2004-06-08 · via 博客园 - Enhydraboy

前两个星期,公司的事太多。只能偷闲整理一点,终于今天有了个初步的成果。
jmsn robots(Version 1.0.0)使用说明

1 特性说明
  (1) 支持启动多个机器人
  (2) 提供简单的数据库连接池,考虑到机器人需要同时为多个用户服务,数据库访问需要池化
  (3) 一个工作线程池,同时有多个用户和机器人对话,需要提高并发的响应能力,同时又不能无限制的开启新的线程,导致系统资源被消耗光
  (4) 自己开发响应内容程序

2 运行环境
  需要 jre 1.4.1.2以上
3 安装及目录基本说明
  [bin]\run.bat运行。jmsn robots的classpath设置就在该文件中
  [lib]目录包括了,必要的运行库。msnm1-2-0b2.jar就是jmsnlib库,我修改了源代码,添加了定时ping notification sever的功能,解决了nat设备会自动cut 空闲的连接,导致机器人自己下线。 
  [config]目录,存放了配置文件。robots.xml是机器人的配置文件,不用多说,大家一看就明白了。cn_pool.xml是数据库连接池的配置文件,主要是为了你自己开发的机器人对话处理程序时,需要访问数据库的时候用到,当然,你也可以自己用其他的连接池。cn_pool.sam是个例子。

4 配置文件说明
  (1) [bin]目录下的config.properties,请大家根据实际情况修改。目前参数很简单,说明如下:
 
  jmsn_robot_home=C:\\JMSNRobots-1.0.0-a   系统的主目录(请注意\\)
  connection_pool_enabled=false                        是否需要connection pool,如果设为true,就按照connection_pool_config_file文件读取配置
  thread_process=20                                           线程工作池的容量
  robot_config_file=robots.xml                            机器人配置文件
  connection_pool_config_file=cn_pool.xml         数据库连接池的配置文件
 
  (2) [config]目录下robots.xml机器人配置文件
      <JMSNRobot>
 <ROBOT id="1" loginname="" password="" robot_name=""  service="org.enhydraboy.msnrobots.SampleRobot"/>
      </JMSNRobot>
      大家一看就明白,就不用多说了
  (3) [config]目录下cn_pool.sam,很简单,一看就明白

5 如何开发自己的机器人内容处理程序
  (1) 开发内容处理代码

其实很简单,只需要继承一个接口就行了。这个接口是org.enhydraboy.jmsnrobot.develop.commandDispatcher。本系统会把接收到的消息,存放在一个MSNInputMessage的类当中,getMsgbody()就可以得到发送给你的消息内容,注意,消息内容是JAVA缺省的iso-8859编码的。getSender()可以得到发送者的email address。

下面是一段简单的代码

package org.enhydraboy.msnrobots;

import org.enhydraboy.jmsnrobot.develop.*;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */

public class SampleRobot extends commandDispatcher {

  public SampleRobot() {
  }

  public String ProcessCommand(MSNInputMessage msg) {
    String ret="";
    if(msg.getMsgbody().toLowerCase().equals("hello")){
      ret="hello "+msg.getFriendlyName();
      ret=ret+"your email is "+msg.getSender();
    }
    return ret;
  }
}

(2) 部署。修改robots.xml,其中的service="org.enhydraboy.msnrobots.SampleRobot",大家应该明白了吧
(3) 连接池的使用。
    ConnectionFactory cf=ConnectionFactory.getInstance();
    DataSource  ds=null;
    try{
      ds=cf.lookup("Sybase");  //获得一个数据源
    }catch(Exception e){
      e.printStackTrace();
    }

    Connection conn=ds.getConnection(); //获得一个连接

    .....
    conn.close //交回连接池


这只是本人的兴趣,花了一点时间,整理了一下,主要为了方便大家编写自己msn机器人的方便

,同时感谢开放源码的jmsnlib类库,可以说,我只是在他的基础上,作了一小点工作而已。

大家可以同我联系。。。。
enhydraboy@yahoo.com.cn

2004