蓝海卓越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