初识融云sdk
03 April 2015
前言
几周前,我把融云sdk介绍给老板。现在,该到自己学习怎么使用。
介绍
融云的盈利模式: 免费加增值。
通信方式: Client SDK + Server SDK。部署方式: 独立部署授权service。
JSSDK的demo的代码如下:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script>
//强制使用长链接
// window.WEB_XHR_POLLING = true;
//强制使用flash
// window.WEB_SOCKET_FORCE_FLASH = true;
</script>
<script src="http://res.websdk.rong.io/RongIMClient-0.9.6.min.js"></script>
</head>
<body>
</body>
<div style="margin: 10px 10px">
content:<input id="content" type="text" style="width: 80%;" value="1">
</div>
<div style="margin: 10px 10px">
send to:<input type="text" id="target" style="margin-right: 50px" value="TARGETID">type:<select id="type" style="margin-right: 50px">
<option value="4" selected>私聊</option>
<option value="1">客服</option>
<option value="0">聊天室</option>
<option value="2">讨论组</option>
<option value="3">群组</option>
</select>
<button id="send">send</button>
</div>
<div id="mydiv" style="width: 100%;height: 200px;background-color: oldlace;overflow-y: auto">
</div>
<div id="cons">
</div>
<script>
window.onload = function () {
var cons = document.getElementById("cons");
window.log = function (x) {
cons.innerHTML += x + "<br/>";
};
// 初始化, 客户端聊天
RongIMClient.init("bmdehs6pdcm6s");
// 设置消息监听器,向终端中写入消息,打开firebug的终端可以看到
RongIMClient.setConnectionStatusListener({
onChanged: function (status) {
window.console.log(status.getValue(), status.getMessage(), new Date())
}
});
var self = "";
// 这里的token要从融云网站的API菜单中获取
var token = "LFPc+Gi2GHjuCxKQnP2ruJsQBDlphTudYZe4u9ePSklDax1jyQzeVnNru3KJ3qDaRaBxIwSJYcwefwe";
// 建立到融云server的连接
RongIMClient.connect(token, {
onSuccess: function (x) {
alert("connected,userid=" + x)
self = x;
},
onError: function (x) {
window.console.log(x.getMessage())
}
});
ins = RongIMClient.getInstance(); // RongIMClient是个工厂方法,这里使用的是单例模式
// 设置向某个div内插值
var mydiv = document.getElementById("mydiv");
ins.setOnReceiveMessageListener({
onReceived: function (data) {
var p = document.createElement("span");
p.style.marginRight = "10px";
p.innerHTML = data.getContent();
mydiv.appendChild(p);
}
});
var c = document.getElementById("content"), // 内容, 对应上面html中的内容
to = document.getElementById("target"), // 通信目标
s = document.getElementById("send"), // send按钮
t = document.getElementById("type"); // 发送方式
s.onclick = function () {
var con = RongIMClient.ConversationType.setValue(t.value);
ins.sendMessage(con, to.value, RongIMClient.TextMessage.obtain(c.value || Date.now()), null, {
onSuccess: function () {
confirm("send successfully");
c.value = (c.value * 1 + 1);
}, onError: function () {
confirm("send fail")
}
});
}
};
</script>
</html>
备注: 从上面可以看到
RongIMClient
是SDK的主类,需要主要研究一下。
后记
感觉上,虚拟机就像是一个巨大的软件一样,寄宿在宿主机器中。个人不太喜欢wine,感觉弄脏了我原本的系统。
傲娇的使用Disqus