在上篇文章中,我们用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. c#中的序列化

    1.对象的序列化 NET支持对象序列化有以下几种方式:二进制序列化:对象序列化之后是二进制形式的,通过BinaryFormatter类来实现的,这个类位于System.Runtime.Serializ ...

  2. [iOS]在xcode的iOS虚拟机中对BLE(蓝牙4.0)进行调试

    本文档的主要内容可参考苹果官方资料: http://developer.apple.com/library/ios/#technotes/tn2295/_index.html 1. 买一个CSR蓝牙4 ...

  3. SQLSERVER2012误删数据恢复过程

    由于长时间从事企业应用系统开发,前往用户现场升级.调试系统是比较常做的事情,但是就在周一,由于同事的失误在毫无知觉的情况下误删了生产数据库几乎所有的数据.当我发现的那一刻,感觉头发都立起来了,心想这他 ...

  4. 使用vue-cli创建一个vue项目

    安装vue-cli npm install -g @vue/cli 1, 使用vue创建一个项目 vue create luffy 2, 安装所需的插件 npm install vue-router ...

  5. Reactjs+BootStrap开发自制编程语言Monkey的编译器:创建简易的页面IDE

    http://localhost:3000/

  6. SpringBoot29 登录逻辑、登录状态判断

    1 知识点扫盲 浏览器和服务器之间时通过session来确定连接状态的,浏览器第一次请求时服务端会自动生成一个session,并将这个sessionId传回给浏览器,浏览器将这个sessionId存放 ...

  7. jdk8中LocalDateTime,LocalDate,LocalTime等日期时间类

    package com.zy.time; import org.junit.Test; import java.time.*; import java.time.format.DateTimeForm ...

  8. shiro 实现 网站登录记住我功能 学习记录(四)

    在很多网站都有在登录的时候,比如说记住我 几天之内  只要再此打开这个网站,都不需要再登录的情况: 1.前台JSP增加 单选框:记住我 如 2.在处理登录的 Controller 代码中增加接收这个参 ...

  9. c++ std::unordered_set

    std::unordered_set template < class Key, // unordered_set::key_type/value_type class Hash = hash& ...

  10. xargs在linux中的使用详解-乾颐堂

    xargs在linux中是个很有用的命令,它经常和其他命令组合起来使用,非常的灵活. xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤 ...