在上篇文章中,我们用winform结合vmware的api做了一个demo,在vmrc sdk中作为plugin单独打包出来vmware-vmrc-win32-x86.exe,上篇文章的demo只能基于这个plugin运行,在主机的vcenter中默认带有此功能,所以想要以activex插件的形式运行于浏览器之上,就必须安装此插件包,约35MB。此插件集成了包含了可运行于IE之上的ActiveX,以及可运行于Chrome上的应用插件(FF等其他浏览器这里没有经过测试)。下面为一张截图,分别测试于IE11和Chrome。

我们先创建console的基本类。

 public class ConsoleModel
{
public int Modes { get; set; }
public int MsgMode { get; set; }
public string AdvancedConfig { get; set; }
public string Host { get; set; }
public string Thumb { get; set; }
public bool AllowSSLErrors { get; set; }
public string Ticket { get; set; }
public string User { get; set; }
public string Pass { get; set; }
public string VMId { get; set; }
public string Datacenter { get; set; }
public string VMPath { get; set; }
}

下面是基于mvc用于和javascript交互的方法,最后返回一条json数据。

 public ActionResult Connect(string vmName)
{
string[] arguments = {
"--url", "https://192.168.0.161/sdk",
"--username", "root",
"--password", "P@ssw0rd",
"--disablesso", "true",
"--ignorecert", "true"}; util = AppUtil.AppUtil.initialize("Connect", constructOptions(), arguments);
util.connect();
ManagedObjectReference mor = util.getConnection().ServiceRef;
ManagedObjectReference sessionMor = util._connection.Service.RetrieveServiceContent(mor).sessionManager;
string ticket = util._connection.Service.AcquireCloneTicket(sessionMor);
ManagedObjectReference vmMor = util.getServiceUtil().GetDecendentMoRef(null, "VirtualMachine", vmName); ConsoleModel console = new ConsoleModel();
console.Modes = ;
console.MsgMode = ;
console.AdvancedConfig = "NaN";
console.Host = "192.168.0.161";
console.Thumb = "";
console.AllowSSLErrors = true;
console.Ticket = ticket;
console.User = "";
console.Pass = "";
console.VMId = vmMor.Value;
console.Datacenter = "";
console.VMPath = ""; return Json(console, JsonRequestBehavior.AllowGet);
}

下面是基于jquery的ajax调用上方web方法。

 function vmrc_connect() {
$.ajax({
type: 'POST',
url: 'Home/Connect',
data: 'vmName=test',
dataType: 'json',
success: function (data) {
startup(data.Modes, data.MsgMode, data.AdvancedConfig);
connect(data.Host, data.Thumb, data.AllowSSLErrors, data.Ticket, data.User, data.Pass,
data.VMId, data.Datacenter, data.VMPath);
},
error: function () {
alert('connect failed');
}
});
}

下方是sdk中提供的调用插件的demo,这里已经作了部分修改。

 function startup(modes, msgMode, advancedConfig) {
log('starting VMRC instance: modes: ' + modes + ', messages: ' + msgMode); if (advancedConfig) {
log('VMRC using advanced config "' + advancedConfig + '"');
} try {
var ret = vmrc.startup(modes, msgMode, advancedConfig);
log('startup returned "' + ret + '"');
} catch (err) {
alert('startup call failed: ' + err);
}
} function connect(host, thumb, allowSSLErrors, ticket, user, pass, vmid, datacenter, vmPath) {
if (thumb.length > 0)
thumb = thumb.replace(/-/g, ':'); try {
var ret = vmrc.connect(host, thumb, allowSSLErrors,
ticket, user, pass, vmid, datacenter, vmPath);
log('connect succeeded');
} catch (err) {
alert('connect failed: ' + err);
}
}

小结:在sdk demo中,为了兼容各种浏览器,可能要修改部分js方法。

vmware之VMware Remote Console (VMRC) SDK(二)的更多相关文章

  1. vmware之VMware Remote Console (VMRC) SDK(一)

    通过console可以实现类似远程桌面的功能,但它的实现方式和远程桌面不同,一般来说远程桌面必须要有网络支持,在机器关闭或者启动过程中无法连接.而console是通过esx的虚拟化组件实现远程桌面.在 ...

  2. vmware之VMware Remote Console (VMRC) SDK(三)

    前两节我们介绍了vmrc sdk的基本用法.在前面的demo中,有一个关键的问题是,我们现在所作的工作都是基于局域网的,作为应用层面上,主机不会直接暴露给用户,而是通过一系列的web service服 ...

  3. VMware实现控制台功能(VMware Remote Console)

    说明: 刚开始一脸懵逼,google了一些资料,发现基本没有能快速落地的,自己做完后梳理了一下发上来供大家参考. 如果帮到你了,请点赞评论关注,以资鼓励,多谢~ 实现VMware控制台功能主要有两种方 ...

  4. VMware vSphere Client5.0与 Windows8不再有问题,解决VMware 5.0 客户端提示VMRC控制台的连接已断开

    问题:VMware 5.0 客户端提示VMRC控制台的连接已断开...正在尝试重新连接,系统是win8的 网上解决办法: WIN8,在安装vmware vsphere client 5.0时出现兼容性 ...

  5. 通过IMM With Remote Console为服务器安装操作系统

    现有IBM System x3750 M4(8722A1C)配置   产品类别 机架式 产品结构 2U CPU类型 Intel 至强E5-4600 CPU型号 Xeon E5-4640 CPU频率 2 ...

  6. VMware workstation创建虚拟机console

    1. 使用VMware workstation创建虚拟机硬件2. 安装操作系统3. 操作系统安装过程 1. 使用VMware workstation创建虚拟机硬件 使用VMware workstati ...

  7. VMware workstation创建虚拟机console图文

    1. 概述2. 配置入口3. 新建虚拟机向导3.1 类型配置3.2 硬件兼容性3.3 操作系统安装3.4 客户机操作系统类型3.5 客户机的名称位置4. 客户机硬件配置选择4.1 客户机处理器配置4. ...

  8. vmware开发包之vSphere Management SDK

    vSphere Management SDK关于vmware管理等相关功能的.net和java的代码示例. 在其5.5的解压包中 eam:esx agent management表示esx虚机生产环境 ...

  9. VMware vCenter重置web console SSO登录密码

    On a Windows Platform Services Controller or vCenter Server with Embedded Platform Services Controll ...

随机推荐

  1. OpenLayers 3 之 地图控件(control)

    OpenLayers 3 之 地图控件(control) 地图控件(control)是指地图上比例尺,缩略图,拉近拉远的按钮,滚动控制条等控件,默认控件有三个,可以禁用. OpenLayers 3 之 ...

  2. SqlServer 获得存储过程的返回值(参数返回),别玩了output

    declare @dingdanid int declare @fanhuizhi int set @dingdanid = 1 exec 检测订单出库资格 @dingdanid ,@fanhuizh ...

  3. 学习 Python 编程的 19 个资源 (转)

    学习 Python 编程的 19 个资源 2018-01-07 数据与算法之美 编译:wzhvictor,英文:codecondo segmentfault.com/a/119000000418731 ...

  4. 使用PowerMap生成地图图文

    地区    GDP(亿)广东省    80854江苏省    77388山东省    68024浙江省    47251河南省    40471四川省    32934湖北省    32665河北省  ...

  5. mysql 随机查询 记录集

    有时候需求需要随机从数据库查询若干条记录集,网上搜了一下,几篇博文都是些重复的.....不知道他们谁抄的谁的,这里除了介绍提供一种笔者自己想到的方法,本质都是利用mysql 的rand() 第一种方法 ...

  6. python算法之选择排序

    选择排序 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大 ...

  7. Stars URAL - 1028

    就是给你一些星星的坐标,然后求出每个星星的左下角有多少颗星星 题目保证按照Y坐标的顺序给出每个星星的坐标,那么我们就可以说,当输入某个星星的坐标时,此时有多少个星星的横坐标小于它,它左下角就有多少星星 ...

  8. 类似jQuery的原生JS封装的ajax方法

    一,前言: 前文,我们介绍了ajax的原理和核心内容,主要讲的是ajax从前端到后端的数据传递的整个过程. Ajax工作原理和原生JS的ajax封装 真正的核心就是这段代码: var xhr = ne ...

  9. hadoop开发环境部署——通过eclipse远程连接hadoop2.7.3进行开发

    一.前言 环境: 系统:centos6.5 hadoop版本:Apache hadoop2.7.3(Windows和centos都是同一个) eclipse版本:4.2.0(juno版本,window ...

  10. Redhat Cluster Suite原理介绍

      RedHat Cluster Suite简称RHCS,是一个能够提供高可用性.高可靠性.负载均衡.存储共享且经济廉价的集群工具集合,基于RHCS可以搭建高可用性集群.负载均衡集群.存储集群和高性能 ...