蓝海卓越PORTAL系统WEB前端开发体会 2
- 格式:docx
- 大小:12.96 KB
- 文档页数:3
蓝海卓越PORTAL系统WEB前端开发体会
最近接到了项目的开发任务,要为行业提供一些WEB认证的解决方案。几个公司的的产品就进入了评估的视线。经过评估、测试以及和厂家工作人员的沟通。发现,蓝海卓越的PORTAL接口设计非常有特色,按照他们的说法“兼容性、扩展性极强”。后来经过了几个项目的实施,他们说的虽然有些夸张,但是扩展性确实还是比较强的。
经过一段时间的了解,我发现这个蓝海卓越在华为PORTAL软件方面市场有一定的市场占有率。因此,把自己的一点体会和认识写出来,供大家参考。希望对大家有用。
我拿到的这个接口规范是V1.1。文档的名字叫做《OSSH Portal接口文档-V1.1》。我问过厂家,蓝海的文档为什么是OSSH。他们答复说他们使用的接口是OSSH提供的,蓝海取得了OSSH的商业许可,技术上几乎是一样的。
这份文档非常的简单,PORTAL服务器提供了一套WEB接口,可以接收GET请求。当时不太理解,我问厂家:“为什么你们不直接提供PORTAL界面呢?而只提供一个接口”。他们的答复是,PORTAL前端的需求千变万化,而只提供接口可以适应任意界面的适配与兼容。在后续几个项目中,他们的设计看上去好像真的是实现了。
案例一:
这套接口就两个方法,一个用于登录,一个用户注销。全部是HTTP的GET方法。就是说,只要用如下的表单来连接就可以实现WEB界面了。
这样可以在任何页面里嵌入登录表单。也可以设计制作任意样式的WEB登录界面。其实这只是表面上的灵活性。在另外一个项目中,其灵活性被表现的淋漓尽致。
案例二:
一个园区要做形象宣传,要求展示一段视频后。要求支持手机视频播放。看似一个简单的需求,很多品牌的一体化设计缺陷就充分的暴露出来了。经过简单的思考,我决定使用HTML5进行视频播放就可以兼容电脑和手机。并且捕获视频播放结束事件。然后自动提交GET表单。一切都如设想的那样顺利。其他厂商还在做需求分析的时候,我们3个小时已经完成了客户的需求上线去测试了。
主要代码如下:
捕获播放完成事件,代码说明:
在success.jsp登录成功页面,有如下代码块:
Your browser does not support HTML5 video.
以上定义的是一个html5视频播放,autoplay="true"表示加载页面后自动播放,
Your browser does not support HTML5 video.指的是如果浏览器不支持播放此视频的默认提示语
在以上代码块下方,加载了一个javascript:
打开js/onesuccess.js后有如下代码:
// 定义一个函数,用于页面跳转,传入参数为要跳转的url
function redirect(userUrl) { window.location.href = userUrl; return false; }
// 定义在页面所有document加载完成后执行以下代码
window.onload = function() {
// 获取视频播放的页面元素的ID
var videoPlayer = document.getElementById("video");
// 增加一个事件监听器,第一个参数表示事件类型为ended,即视频播完完毕事件,第二个参数为在事件完成后执行myHander方法
// 第三个参数如果是true表示在捕获节点调用事件处理程序,如果是false,表示在冒泡节点调用事件处理程序,默认false
videoPlayer.addEventListener('ended',myHandler,false);
// 事件处理程序方法,传入一个事件对象
function myHandler(e) {
// 如果传入的事件对象未定义,即undefined,重新赋值为window.event,浏览器通用事件对象
if(!e) { e = window.event; }
// 获取页面userurl,即已经赋值的跳转url
var userUrl = document.getElementById("userurl").value;
// 调用页面重定向跳转函数
redirect(userUrl);
}
}
案例三:
还有一个项目用户需要用APP来登录认证。必须在APP里输入用户名密码。我们就给了一个解决方案。让他模拟GET请求,把参数发上去,然后在分析返回值。由于蓝海这套接口的返回值是固定格式,并且有完整的代码解释。因此非常好分析。由于,我不是做安卓开发的,就没法提供代码了。根据我们提的方案,安卓程序员半天就实现了APP认证。
案例四:
还有一个项目,用户要求“无感知认证”。参考了一些资料,结合蓝海卓越的PORTAL接口做了一个简单的COOKIE无感知。其实很简单,就是把用户名密码保存到COOKIE里,然后进行自动提交。虽然很山寨,但是用户不用换AC,用户倒也接受了。
案例五:
在接口标准里,有2个参数是关于AC地址的,一个是wlanacname,另外一个是wlanacip。这两个参数的作用是为了支持多AC。就是说一个PORTAL服务器可以同时为多个AC、NAC等提供服务。这是一个非常有用的参数。用一个PORTAL服务器就可以支持N个不同的AC,这和目前流行的广告路由器有异曲同工之妙,但是更加趋于标准化和企业化。
在一个项目的实施中,我们也使用了这个特性,它很好的兼容了不同厂家的AC。
后记:
在经过了几个项目的实施后,我曾经向蓝海卓越咨询过一个问题:为什么不把接口做成套接字呢,那样效率岂不是更高。得到的答案是,目前这套HTTP的GET接口已经可以达到500多次请求每秒。在实际的应用不大可能超过这个频度,因此没必要为了高性能牺牲易用性。我想也是,这个GET接口使用起来非常容易,几分钟的事情。要是整成套接字那开发难度就大的多了。
以上是我在使用蓝海卓越PORTAL接口过程中的一点体会,希望抛砖引玉。给有同样需求的朋友一点思路上的帮助。
对portal感兴趣请加:22623254、177736461
COOVA免费广告路由器 :372194965