| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- var videos = document.getElementById("videos");
- var sendBtn = document.getElementById("sendBtn");
- var msgs = document.getElementById("msgs");
- var sendFileBtn = document.getElementById("sendFileBtn");
- var files = document.getElementById("files");
- var rtc = SkyRTC();
- /**********************************************************/
- sendBtn.onclick = function (event) {
- var msgIpt = document.getElementById("msgIpt"),
- msg = msgIpt.value,
- p = document.createElement("p");
- p.innerText = "me: " + msg;
- //广播消息
- rtc.broadcast(msg);
- msgIpt.value = "";
- msgs.appendChild(p);
- };
- sendFileBtn.onclick = function (event) {
- //分享文件
- rtc.shareFile("fileIpt");
- };
- /**********************************************************/
- //对方同意接收文件
- rtc.on("send_file_accepted", function (sendId, socketId, file) {
- var p = document.getElementById("sf-" + sendId);
- p.innerText = "对方接收" + file.name + "文件,等待发送";
- });
- //对方拒绝接收文件
- rtc.on("send_file_refused", function (sendId, socketId, file) {
- var p = document.getElementById("sf-" + sendId);
- p.innerText = "对方拒绝接收" + file.name + "文件";
- });
- //请求发送文件
- rtc.on('send_file', function (sendId, socketId, file) {
- var p = document.createElement("p");
- p.innerText = "请求发送" + file.name + "文件";
- p.id = "sf-" + sendId;
- files.appendChild(p);
- });
- //文件发送成功
- rtc.on('sended_file', function (sendId, socketId, file) {
- var p = document.getElementById("sf-" + sendId);
- p.parentNode.removeChild(p);
- });
- //发送文件碎片
- rtc.on('send_file_chunk', function (sendId, socketId, percent, file) {
- var p = document.getElementById("sf-" + sendId);
- p.innerText = file.name + "文件正在发送: " + Math.ceil(percent) + "%";
- });
- //接受文件碎片
- rtc.on('receive_file_chunk', function (sendId, socketId, fileName, percent) {
- var p = document.getElementById("rf-" + sendId);
- p.innerText = "正在接收" + fileName + "文件:" + Math.ceil(percent) + "%";
- });
- //接收到文件
- rtc.on('receive_file', function (sendId, socketId, name) {
- var p = document.getElementById("rf-" + sendId);
- p.parentNode.removeChild(p);
- });
- //发送文件时出现错误
- rtc.on('send_file_error', function (error) {
- console.log(error);
- });
- //接收文件时出现错误
- rtc.on('receive_file_error', function (error) {
- console.log(error);
- });
- //接受到文件发送请求
- rtc.on('receive_file_ask', function (sendId, socketId, fileName, fileSize) {
- var p;
- if (window.confirm(socketId + "用户想要给你传送" + fileName + "文件,大小" + fileSize + "KB,是否接受?")) {
- rtc.sendFileAccept(sendId);
- p = document.createElement("p");
- p.innerText = "准备接收" + fileName + "文件";
- p.id = "rf-" + sendId;
- files.appendChild(p);
- } else {
- rtc.sendFileRefuse(sendId);
- }
- });
- //成功创建WebSocket连接
- rtc.on("connected", function (socket) {
- //创建本地视频流
- rtc.createStream({
- "video": true,
- "audio": true
- });
- });
- //创建本地视频流成功
- rtc.on("stream_created", function (stream) {
- document.getElementById('me').srcObject = stream;
- document.getElementById('me').play();
- // 设置本地不播放自己的声音
- document.getElementById('me').volume = 0.0;
- });
- //创建本地视频流失败
- rtc.on("stream_create_error", function () {
- alert("create stream failed!");
- });
- //接收到其他用户的视频流
- rtc.on('pc_add_stream', function (stream, socketId) {
- var newVideo = document.createElement("video");
- var id = "other-" + socketId;
- newVideo.setAttribute("class", "other");
- newVideo.setAttribute("autoplay", "autoplay");
- newVideo.setAttribute("id", id);
- videos.appendChild(newVideo);
- rtc.attachStream(stream, id);
- });
- //删除其他用户
- rtc.on('remove_peer', function (socketId) {
- var video = document.getElementById('other-' + socketId);
- if (video) {
- video.parentNode.removeChild(video);
- }
- });
- //接收到文字信息
- rtc.on('data_channel_message', function (channel, socketId, message) {
- var p = document.createElement("p");
- p.innerText = socketId + ": " + message;
- msgs.appendChild(p);
- });
- //连接WebSocket服务器
- rtc.connect("wss://elevator.inspuriit.com/wss", window.location.hash.slice(1));
|