通信,利用Agora实现"/>
分分钟搞定P2P跨平台通信,利用Agora实现
实现了ubuntu和web应用之间的跨平台通信
提前准备技能:html,js,c++,linux
准备工作:下载Agora的两个SDK,Web和Linux C++
下载地址:/downloads
在ubuntu下编译Linux C++的SDK,生成demo
运行:
./rtmServerDemo 8a9a81ca*******4f18afb1227e47c(自己的ID)
demo一部分代码被我修改成中文了,当成注释看吧
上前端代码 Test.html:(将web sdk的js文件跟其放入同一个目录下,并重命名为AgoraSig.js)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Test</title><script type="text/javascript" src="AgoraSig.js"></script><script>const client=AgoraRTM.createInstance('8a9a81ca98f4430d84f18afb1227e47c');variable=new XMLHttpRequest();function msgInit() {client.on('ConnectionStateChanged', (newState, reason) => {console.log('on connection state changed to ' + newState + ' reason: ' + reason);});client.login({ token: null, uid: '12345' }).then(() => {console.log('AgoraRTM client login success');}).catch(err => {console.log('AgoraRTM client login failure', err);});}function sendMsg() {client.sendMessageToPeer({text: 'test peer message'}, '1234',).then(sendResult => {if (sendResult.hasPeerReceived) {/* 远端用户收到消息的处理逻辑 */} else {/* 服务器已接收、但远端用户不可达的处理逻辑 */}}).catch(error => {/* 发送失败的处理逻辑 */});}function recvMsg(){client.on('MessageFromPeer', ({ text }, peerId) => { // text 为消息文本,peerId 是消息发送方 User ID/* 收到点对点消息的处理逻辑 */document.getElementById("myDiv").innerHTML=text;});}</script>
</head>
<body>
<input type="button" name="confirmAlter" value="init" onclick="msgInit()"/>
<input type="button" name="confirmAlter" value="send" onclick="sendMsg()"/>
<button type="button" onclick="recvMsg()">recv</button>
<div>收到消息:</div>
<div id="myDiv"><h2>使用 AJAX 修改该文本内容</h2></div>
</body>
</html>
点击init初始化,然后点击 recv 进行消息接收(ajax),点send发送
放上成功测试图:
更多推荐
分分钟搞定P2P跨平台通信,利用Agora实现
发布评论