通过利用 Yunba Javascript SDK 提供的接口 API,你可以很方便地在智能手机、平板电脑、网站等终端应用上使用 Yunba 的各种消息服务。
调试工具可以用 Chrome 本身自带 JavaScript Console,其它浏览器可能需要安装相应插件。例如 FireFox 需要安装 FireBug。
Yunba JavaScript SDK 依赖于 Socket.IO,所以要先引入 Socket.IO。 请参考(SDK 中的)Demo 分别引入 Socket.IO 和 yunba-js-sdk。
这里,需要在云巴 Portal 上创建新应用,用获取到的 AppKey 创建 Yunba 实例。
var yunba = new Yunba({server: 'sock.yunba.io', port: 3000, appkey: appkey});
注意:如果不使用 connect_by_customid 而使用不带 customid 的 connect,那对云巴来说每次连接的都是新用户,也就是客户端每次连接都会创建一个新的日活,
yunba.init(function (success) {
if (success) {
yunba.connect_by_customid('your_app_user_id', function (success, msg, sessionid) {
if (success) {
console.log('你已成功连接到消息服务器,会话ID:' + sessionid);
} else {
console.log(msg);
}
});
}
});
如果你想接收一个频道的消息,你得先使用subscribe()
方法订阅该 频道,
然后用set_message_cb()
方法设置收到消息时调用的回调函数来接收消息。
注:
subscribe()
的前提是客户端已经成功连上服务器。为了确保在连接成功以后再进行订阅,可以将subscribe()
写到connect_by_customid()
的回调函数中,在 success 时才执行。
yunba.subscribe({'topic': 'my_topic'},
function (success, msg) {
if (success) {
console.log('你已成功订阅频道:my_topic');
} else {
console.log(msg);
}
}
);
yunba.set_message_cb(function (data) {
console.log('Topic:' + data.topic + ',Msg:' + data.msg);
});
你可以使用publish()
方法向所有订阅 my_topic 频道的终端发布一条 “你好!Yunba。” 消息。
yunba.publish({'topic': 'my_topic', 'msg': '你好!Yunba。'},
function (success, msg) {
if (success) {
console.log('消息发布成功');
} else {
console.log(msg);
}
}
);
将上面的例子扩展一下,我们就可以利用 Yunba 实现在 JavaScript 和其他平台之间的实时通讯。