1、1.1. 简介 Ape 是 一个 基干http 链 接 的“服 务器 推” 技术 应用 的一个 开源 框架 。 服务器 推:http:/ 搭建ape 环 境的 系统 要求: To run APE Server you will need any one of the following supported Operating Systems: 1.Linux (with a kernel 2.6.16+) 2.MacOS X 10.3 computer 3.Windows computer with a virtual machine running Linux. FreeBSD with l
2、atest APE Server version : https:/ (see discussion page before visiting) 1.2. 安装虚拟机 1.3. 安装 redhat6.1(kernel 2.6.23) 刚 刚 好 1.4. 下载及配置 ape http:/ape-project.org 1.4.1. 配置 hosts 文件( 方便本机测试用) Edit your /etc/host file and add the folowing line : /etc/hosts : 127.0.0.1 .local 127.0.0.1 .local 127.0.0.1 .
3、local 127.0.0.1 .local 127.0.0.1 .local 127.0.0.1 .local 127.0.0.1 .local 127.0.0.1 .local 127.0.0.1 .local 127.0.0.1 .local 127.0.0.1 .local 127.0.0.1 .local If you are running APE on windows in a virtual machine edit the file C:WINDOWSsystem32driversetchosts) Do not use localhost for your domain o
4、r any domain without TLD (for example ape.mycomputer) or your APE installation will not work! 1.4.2. Configure APE JSF(配置 ape-jsf) Put all APE JSF file in the virtualhost you just created. And open the file Demos/config.js. Configure it like that : APE.Config.baseUrl = http:/ /APE JSF APE.Config.dom
5、ain = ; /Your domain, must be the same than the domain in aped.conf of your server APE.Config.server = :443; /APE server URLIf you use APE on your local machine, replace with ape-test.local 1.4.3. Test your installation( 测试配置) Now you can open your browser to this tool will perform some check and
6、 verify your APE server is correctly setup and help you to find what is going wrong. If your installation is not working; check this page : APE_Server_does_not_start or come on our IRC channel #ape- our use our groups 如图所 以示 1.5. apach 部 署 网 页 启动 首先 安 装httpd 这 个包 【redhat linux6.1 自带 】 (1) 修 改主 配置 文件
7、httpd.conf 去 掉注 释:#ServerName :80 修 改为 :ServerName localhost:80 然后 ,你 可以 修改 主配 置文件/etc/httpd/httd.conf 或者 ,你 可以 不修 改! 启动 服务 ,service httpd start linux 下httpd 无 法启 动 运 行命 令:service httpd start ,无 法启 动httpd ,错 误提 示如 下: Starting httpd: (2)No such file or directory: httpd: could not open error log file
8、/etc/httpd/logs/error_log. Unable to open logs 解决 办法 touch /etc/httpd/logs/error_log chown apache:apache /etc/httpd/logs/error_log 把所 有者 和组 都改 为 apache 本机 可以 访问80 端口, 但 其它电 脑无 法访 问 网上 查了 半天 不果 ,后 来向仲 桃求 救, 仲桃 把系 统防火 墙关 闭, 终于 可以 正 常访 问了 。 弄了两 天, 终于 把环 境搭 好 。 1.6. 运行在 线 聊 天 室效 果 图 1.6.1. 登陆聊天室, 发 送消 息
9、 打开聊 天室 页面 ,用 户自 动取得 一个 随 机 ID, 进入 聊 天室, 发送 一条 ”hello world ” 消息 如图所 以示: 1.6.2. 接收消息 打开另 一个 页面 ,发 送一 条消息 “how old are you? ” 如图所 示: 1.7. 模拟 APE 调用 为了测 试 ape 的 并发 数, 需要编 写测 试页 面 。 一直 没有很 好的 思路 。 后来请 教刘 辉, 可以 用 firefox 调度 例子 的请 求与 响应 是什么 东西, 模 拟这 些请 求 看看 。 请求链 接:http:/192.168.0.154:8800/?, 在这 里用 jquer
10、y 进行测试 $.ajax( type: “POST“, dataType: “json“, url: “http:/192.168.0.154:8800/?“, data: “cmd“:“CONNECT“,“chl“:1,“params“:“name“:“+loginName+“,“cmd“:“JOIN“,“ch l“:2,“params“:“channels“:“test“, success: function(data) /alert( “Data Saved: “ + data0.data.sessid ); sendMessage(data0.data.sessid+“_“+logi
11、nName,testindex,data0.data.sessid,dat a2.data.pipe.pubid); , error:function(data) /alert( “error: “ + data ); ); 1.7.1. 连接请求 “cmd“:“CONNECT“,“chl“:1,“params“:“name“:“mt“, “cmd“:“JOIN“,“chl“:2,“params“:“channels“:“test“ 1.7.2. 连接请求响应 “time“:“1331258853“,“raw“:“LOGIN“,“data“:“sessid“:“f7ae9a08d782767b
12、063131005 721ef53“, “time“:“1331258853“,“raw“:“IDENT“,“data“:“user“:“casttype“:“uni“,“pubid“:“c6 8c7eabc83a51ccd536dad875fcab6d“,“properties“:“name“:“myesa“, “time“:“1331258853“,“raw“:“CHANNEL“,“data“:“users“:“casttype“:“uni“,“pubid“ :“c68c7eabc83a51ccd536dad875fcab6d“,“properties“:“name“:“myesa“,“l
13、evel“:1,“ casttype“:“uni“,“pubid“:“f77ba95d9d657506368f1138967533e9“,“properties“:“name“ :“mapvb“,“level“:1,“casttype“:“uni“,“pubid“:“722789e5de7c2c5851f3895b8590c5e a“,“properties“:“name“:“mpddm“,“level“:1,“casttype“:“uni“,“pubid“:“4212ea1a 43f8e5210a448ac4da71193c“,“properties“:“name“:“muafh“,“lev
14、el“:1,“pipe“:“ca sttype“:“multi“,“pubid“:“1b45bc656b4a6d2ddc8ccb70b483425c“,“properties“:“name“ :“test“ 1.7.3. 发送消息请求 “cmd“:“SEND“,“chl“:50,“params“:“msg“:“654“,“pipe“:“1b45bc656b4a6d2ddc8ccb70b 483425c“,“sessid“:“f7ae9a08d782767b063131005721ef53“ 1.7.4. 检查消息请求 “cmd“:“CHECK“,“chl“:51,“sessid“:“f7ae9
15、a08d782767b063131005721ef53“ 1.7.5. 检查消息响应 有消息 : “time“:“1331259920“,“raw“:“DATA“,“data“:“msg“:“22“,“from“:“casttype“:“uni“, “pubid“:“c68c7eabc83a51ccd536dad875fcab6d“,“properties“:“name“:“myesa“,“pipe “:“casttype“:“multi“,“pubid“:“1b45bc656b4a6d2ddc8ccb70b483425c“,“properties“: “name“:“test“ 无消息 :
16、“time“:“1331259908“,“raw“:“CLOSE“,“data“:“value“:“null“ 1.8. 测试 APE 连 接 数 例子是 在APE_JSFDemosShoutbox 基础 上修 改的 , 在 【this.onCmd(send,this.cmdSend); /Catch message reception this.onRaw(data,this.rawData); 】这2 个 事件 添 加自己 的业 务操 作 1. 消息 接收 页面 ,如 果监 听到有 消息 ,就 给数 据库 写一条 收到 消息 的记 录 2. 消息 发送 页面 ,手 动发 送一条 消息 使用
17、loadrunner 并发 200 个连接 , 有2 个 连接 失败 了。 并发500 个 连接 ,直 接当 掉了, 连接 全部 出错 初步估计 这次测 试失 败的 原因估计 跟硬件 的关 系比 较大,APE,WEB 页面(HTTPD) ,写数 据库 页面 (TOMCAT ) 都部 署在 同一台 虚拟 机上 , 内 存只 有 1G。 还有 其它 原因 如:tomcat ,httpd 优化等 。 1.9. 关于 API APE 有 关于SOCKET,MYSQL 的操作 , 文 档上 也有 给出 例子, 但 使 用的 时候 报 Ape 未定 义, 不知道 还需 要引 用哪 些文 件? APE-JSF , 有例 子可 以参 考 在【APE_JSFDemos 】目录下 1.10. 总结 学习新 的技 术或 框架 , 在大 致了解 原理 或是 看完 例子 之后 , 最 好可 以修 改例 子看 看效果 , 或是自 己写 一些 例子 进行 测试,可 能 会对 这个 东西 有更 进 一步 的了解 。 最后感 谢各 位帮 助的 同事 ,领导 ,谢 谢大 家。