一、云巴介绍

  给大家推荐一个提供后台消息服务的服务供应商,个人用户一般是免费的,可作为开发者的后台服务提供商。

  官网

  专注于为需要实时数据交换的产品提供完美解决方案。支持包括 手机、Web、智能设备 的几乎所有平台。

二、JavaScript JDK下载与引入

   JDK下载

三、应用实例

一个简单的浏览器端接收云巴消息demo

1.引入bootstrap作为默认样式插件

建立一个client.html并引入bootstrap
<!DOCTYPE html>
<html>
<head>
<title>云巴推送---消息收听</title> <!-- 新 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="bootstrap.min.css"> <!-- 可选的Bootstrap主题文件(一般不用引入) -->
<!-- <link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap-theme.min.css"> --> <!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<!-- <script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script> -->
<script src="jquery-1.10.2.min.js"></script> <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="bootstrap.min.js"></script> </div>
</body>
</html>

2.依次引入socket.io 和 yunba-js-sdk.js

注意:一定先引入socket.io再引入yunba-js-sdk.js
 
<script src="socket.io-1.3.5.min.js"></script>

<script src="yunba-js-sdk.js"></script>

3.建立client.js并绘制client.html的UI

client.html最终代码如下
 
<!DOCTYPE html>
<html>
<head>
<title>云巴推送---消息收听</title> <!-- 新 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="bootstrap.min.css"> <!-- 可选的Bootstrap主题文件(一般不用引入) -->
<!-- <link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap-theme.min.css"> --> <!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<!-- <script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script> -->
<script src="jquery-1.10.2.min.js"></script> <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="bootstrap.min.js"></script> <script src="socket.io-1.3.5.min.js"></script> <script src="yunba-js-sdk.js"></script> <script src="client.js"></script> </head>
<body> <div class="jumbotron">
<div class="container">
<h1>Hello, Yunba!</h1>
<p>点击订阅接受推送消息</p>
<p><a class="btn btn-primary btn-lg" href="#" role="button">订阅</a></p>
</div>
</div> <div class="dialog">
<h3>消息框</h3>
<textarea class="form-control" rows="6" disabled=""> </textarea>
</div>
</body>
</html>

4.client.js

1.new Yunba()
首先引入确保client.js在client.html中的引用顺序,并添加如下代码实例化yunba。在appkey处填写你自己的appkey(请先注册账号并建立一个应用)
 
var yunba = new Yunba({server: 'sock.yunba.io', port: 3000, appkey: "your appkey"});
 
2.yunba.init
使用yunba.init方法初始化云巴,并连接云巴服务器
 
yunba.init(function (success) {
if (success) {
$(".container").append("<p>初始化成功</p>");
console.log('初始化成功');
mqtt_connect(); }
}, function () { //重新连接 });

3.yunba.connect_by_customid(cid, connected);

使用yunba.connect_by_customid(cid, connected)方法连接响应应用
 
 function mqtt_connect() {
var cid = "8888";
var connected = function(success, msg, sessionid) {
if (success) {
$(".container").append("<p>连接成功</p>");
console.log('连接成功');
} else {
alert(msg);
}
}; if (!cid || cid.length === 0) {
alert('请输入自定义ID');
} else {
yunba.connect_by_customid(cid, connected);
}
}
 
4.yunba.subscribe
使用yunba.subscribe方法定义订阅的频道
 
 
function Yunba_subscribe(){
//默认一个12345频道
var topic = "12345";
yunba.subscribe({'topic': topic},
function (success, msg) {
if (success) {
console.log('你已成功订阅频道:12345');
$(".dialog textarea").val("你已成功订阅频道:12345");
} else {
console.log(msg);
}
}
);
 

5.yunba.set_message_cb

使用yunba.set_message_cb来实时监听并接受云巴消息
 
yunba.set_message_cb(function (data) {
console.log('Topic:' + data.topic + ',Msg:' + data.msg);
var val = $(".dialog textarea").val();
$(".dialog textarea").val(val+'\r\n'+"来自云巴:"+data.topic+"的消息:"+data.msg+"");
});

6.最终client.js代码如下,已经可以在云巴官网的应用界面向订阅了相应频道(“12345”)的web页面发送消息并实时响应

 
var yunba = new Yunba({server: 'sock.yunba.io', port: 3000, appkey: ""});

yunba.init(function (success) {
if (success) {
$(".container").append("<p>初始化成功</p>");
console.log('初始化成功');
mqtt_connect(); }
}, function () { //重新连接 }); function mqtt_connect() {
var cid = "8888";
var connected = function(success, msg, sessionid) {
if (success) {
$(".container").append("<p>连接成功</p>");
console.log('连接成功');
} else {
alert(msg);
}
}; if (!cid || cid.length === 0) {
alert('请输入自定义ID');
} else {
yunba.connect_by_customid(cid, connected);
}
}
$(document).ready(function(e){
$(document).on("click","a",function(){
console.log('订阅点击');
Yunba_subscribe();
})
}) function Yunba_subscribe(){ var topic = "12345";
yunba.subscribe({'topic': topic},
function (success, msg) {
if (success) {
console.log('你已成功订阅频道:12345');
$(".dialog textarea").val("你已成功订阅频道:12345");
} else {
console.log(msg);
}
}
); } yunba.set_message_cb(function (data) {
console.log('Topic:' + data.topic + ',Msg:' + data.msg);
var val = $(".dialog textarea").val();
$(".dialog textarea").val(val+'\r\n'+"来自云巴:"+data.topic+"的消息:"+data.msg+"");
});
 

云巴-JavaScript API测试与实例(新)的更多相关文章

  1. API测试自动化——基于CDIF的SOA基本功能(实例篇)

    今天我们通过一些实例来体验一下API的自动化测试,感受一下基于CDIF的SOA的一些基本功能. 传统的测试工具在测试一个API的时候,必须手动填写这个API所需要接收的所有信息,比如一个查询航班动态的 ...

  2. Google Map JavaScript API V3 实例大全

    Google Map JavaScript API V3 实例大全 基础知识 简单的例子 地理位置 语言 位置 坐标 简单的投影 事件 简单事件 关闭事件 多次添加事件 事件属性 控制 php禁用ui ...

  3. aaronyang的百度地图API之LBS云与.NET开发 Javascript API 2.0【基本地图的操作】

    为了更简单的演示,我们创建个.NET的ASP.NET MVC4项目 好了,上面都是后话,POI说白了,就是你的用户的数据,很多数据,不过没关系,因为你的数据如果存在百度的LBS云上,那么大数据你就不用 ...

  4. poium测试库之JavaScript API封装原理

    poium一直我在维护的一个开源项目,它的定位是以极简的方式在自动化项目中Page Objects设计模式.我在之前的文章中也有介绍. 本篇文章主要介绍一个JavaScript元素操作的封装原理. 为 ...

  5. 出色的 JavaScript API 设计秘诀

    设计是一个很普遍的概念,一般是可以理解为为即将做的某件事先形成一个计划或框架. (牛津英语词典)中,设计是一种将艺术,体系,硬件或者更多的东西编织到一块的主线.软件设计,特别是作为软件设计的次类的AP ...

  6. 使用JMeter进行RESTful API测试

    使用JMeter进行RESTful API测试 在哪里设置实现最优脚本重用的属性 由于支持云的应用程序通常可以轻松.快速地进行复制和部署,所以可以在多种环境中对其进行测试.如果您需要在多个环境中测试和 ...

  7. 百度地图 JavaScript API 极速版 开发体会

    前段时间百度地图API推出了 JavaScript API 极速版 1.0 简单看了一下,从产品定位来说真是挺好. 把开发人员细分成普通web开发人员和移动web开发人员.正好用到了手机地图这块决定尝 ...

  8. PhantomJS:基于WebKit、开源的服务器端JavaScript API

    PhantomJS是一个基于WebKit的服务器端JavaScript API,它基于 BSD开源协议发布.PhantomJS无需浏览器的支持即可实现对Web的支持,且原生支持各种Web标准,如DOM ...

  9. PhantomJS是一个基于WebKit的服务器端JavaScript API

    PhantomJS是一个基于WebKit的服务器端JavaScript API,它基于 BSD开源协议发布.PhantomJS无需浏览器的支持即可实现对Web的支持,且原生支持各种Web标准,如DOM ...

随机推荐

  1. RetinaNet 迁移学习到自标数据集

    Keras-RetinaNet 在自标数据集 alidq 上训练 detection model RetinaNet 模型部署与环境配置 参考README 数据预处理 数据统计信息: 类别:gun1, ...

  2. sql批量更新

    -----------------更新无锡医院名称 update Opt_DKI_Hospital set centerName =tmp.[医院名称] from Opt_DKI_Hospital h ...

  3. python3【基础】-集合

    集合( set):把不同的元素组成一起形成集合,是python基本的数据类型. 集合元素(set elements):组成集合的成员(不可重复) class set(object) | set() - ...

  4. pip安装Crypto注意事项

    pip install PyCrypto 1.使用pip install Crypto的方式安装的文件夹名称为crypto,而内部引用都用的Crypto路径,因此pip安装后,需要将文件夹名称修改为C ...

  5. win2008 r2 开启TLS1.2

    Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityPr ...

  6. Python中用字符串导入module

    在Python中,无法通过字符串来导入一个module文件: import "string" # Error x = "string" import x # 不 ...

  7. Linux系统LVS搭建笔记

    因为客户是国有企业,且一次性购买了14台服务器(16核),14台中暂且先用8台,其中LVS使用5台,NFS一台主要为了共享WEB系统(多台电脑的1.5T的硬盘容量浪费了).MySQL两台,Memcac ...

  8. FormsAuthentication.SetAuthCookie 方法登录

    FormsAuthentication.SetAuthCookie 方法,登录的原理. FormsAuthentication.SetAuthCookie 方法登录的过期时间. 登录相关阅读 asp. ...

  9. c#程序的阅读

    1 .程序是为表示两个连续的整数不能被整除. 2 ,3 程序黑框得不出结果,所以不知道具体的结果和运行时间. 4 采用更好的专用电脑进行计算.

  10. lintcode-422-最后一个单词的长度

    422-最后一个单词的长度 给定一个字符串, 包含大小写字母.空格' ',请返回其最后一个单词的长度. 如果不存在最后一个单词,请返回 0 . 注意事项 一个单词的界定是,由字母组成,但不包含任何的空 ...