中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

js如何實現websocket實例

發布時間:2021-06-26 11:02:25 來源:億速云 閱讀:414 作者:小新 欄目:編程語言

這篇文章主要介紹js如何實現websocket實例,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

<!-- websocket 接口 --><script type="text/javascript">var websocket_url = 'ws://127.0.0.1:' + "{$Think.config.prompt_service.ws_port}";var admin_userid = "{$Think.const.UID}";var socket_type = JSON.parse('{$mginfo.socket_type|default=[]|json_encode}');</script><script src="__JS__/socket_notify.js?v=20191018"></script>

 socket_notify.js

var ws_text = document.location.protocol == 'https:' ? 'wss' : 'ws';
websocket_url = ws_text + '://' + window.location.host + '/socket.io/';
var socket = new WebSocket(websocket_url);

//連接成功時觸發
socket.onopen = function() {
    console.log('connected to server!');
    // 登錄
    socket.send(JSON.stringify({
        type: 'login',
        uid: admin_userid,
    }));

    setInterval(function() {
        console.log('Hello!');
        socket.send('Hello!');
    }, 30000)
};
var socket_func = {};

//監聽收到的消息
socket.onmessage = function(res) {
    let Sound      = false;
    let alerttitle = false;
    let alerttext  = false;
    let alertlocal = false;
    let content    = '';
    let func       = '';

    var data = JSON.parse(res.data);
    console.log(data);
    var type = data.type;
    try {
        content = JSON.parse(data.data);
    } catch (err) {
        content = data.data;
    }
    const alert_check = data.alert;

    switch (type) {
        case 'newCpOrder':
            func       = type;
            Sound      = 1;
            alerttitle = '新公司入款訂單';
            alerttext  = '訂單ID:' + content.id;
            alertlocal = '/cp_recharge/index.html';
            break;
        case 'newAgentOrder':
            func       = 'newTxOrder';
            Sound      = 2;
            alerttitle = '新代理出款訂單';
            alerttext  = '訂單ID:' + content.id;
            alertlocal = '/exchange/index.html';
            break;
       
    }

    if (alert_check) {
        if ((!socket_type[type] || socket_type[type]['sound'] === 1) && Sound !== false) {
            playSound(Sound);
        }

        if ((!socket_type[type] || socket_type[type]['text'] === 1) && alerttitle !== false) {
            notify(alerttitle, alerttext, alertlocal);
        }
    }

    // 執行方法
    if (func) {
        try {
            socket_func[func](content);
        } catch (err) {
            console.log('沒有當前方法' + func);
        }
    }
};

// 斷開
socket.onclose = function(e) {
    console.log('websocket 斷開: ' + e.code + ' ' + e.reason + ' ' + e.wasClean)
    console.log(e);
}

var Notification = window.Notification || window.webkitNotification || window.mozNotification;
var stopSound = function() {};

// 播放聲音
var playSound = function(type) {
    var audio_id = 'recharge_audio';
    switch (type) {
        case 1:
            audio_id = 'recharge_audio';
            break;
        case 2:
            audio_id = 'withdraw_audio';
            break;
        case 3:
            audio_id = 'withdraw_audio';
            break;
        case 4:
            audio_id = 'untreated_recharge';
            break;
        case 5:
            audio_id = 'untreated_withdraw';
            break;
        case 6:
            audio_id = 'large_recharge';
            break;
        default:
    }

    var audio = document.getElementById(audio_id);
    audio.currentTime = 0;
    audio.play();
};

var notify = function() {};

// web 頁面通知
if (Notification) {
    Notification.requestPermission().then(function(permission) {
        if (permission === 'granted') {
            notify = function(title, content, url) {
                var options = {
                    body: content,
                };
                var instance = new Notification(title, options);
                instance.onshow = function() {
                    setTimeout(function() {
                        instance.close();
                    }, 18000);
                };
                instance.onclick = function() {
                    window.open(url);
                };
            };
            window.notify = notify;
        }
    });
}

Buy me a cup of coffee :)

以上是“js如何實現websocket實例”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德令哈市| 砚山县| 隆尧县| 湛江市| 宁武县| 扬州市| 都昌县| 朝阳区| 永昌县| 渭源县| 仙桃市| 琼结县| 连云港市| 铜梁县| 包头市| 赫章县| 同江市| 开阳县| 奎屯市| 海兴县| 淄博市| 绍兴市| 郴州市| 黄冈市| 长沙县| 绥化市| 阳泉市| 拉孜县| 遂溪县| 句容市| 子洲县| 宝丰县| 无极县| 喀喇| 周宁县| 佛冈县| 金堂县| 台北市| 甘洛县| 武强县| 临颍县|