websocket(im.js)的使用记录

本文记录了使用WebSocket库im.js实现大屏幕数据实时刷新的需求。当卡种变动、新购卡信息或任务完成时,通过WebSocket进行即时通信。文中详细介绍了关键的代码实现,包括im.js的引用、observer对象的定义以及配置和实例化过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:
制作前台大屏幕,当卡种变化、有新的购卡信息或任务完成信息时,需要实时刷新数据。需要用到websocket进行实时通信。
主要代码
引用im.js

<script src="/assets/newugo/pc/basis/script/GoBelieveIO/im.js"></script>

定义observer对象

var observer={
        handlePeerMessage: function (msg) { // 接受到一条im消息
            var listData = JSON.parse(msg.content)
            //收到消息后的回调函数
        },
        handleMessageACK: function (msgLocalID, receiver) { // 服务器对收到消息的ack,此时这条消息才能标志为发送成功
            console.log(2, "message ack local id:", msgLocalID, " receiver:", receiver)
        },
        handleMessageFailure: function (msgLocalID, receiver) { // 消息发出后,未收到服务器的ack,在和服务器的连接断开后,会通知消息发送失败。
            console.log(3, "message fail local id:", msgLocalID, " receiver:", receiver)
        },
        onConnectState: function (state) { // 连接状态变更通知
            if (state == IMService.STATE_CONNECTED) {   // 连接中
                console.log(4, "im connected");
            } else if (state == IMService.STATE_CONNECTING) {   // 连接
                console.log(5, "im connecting");
            } else if (state == IMService.STATE_CONNECTFAIL) {  // 连接失败
                console.log(6, "im connect fail");
            } else if (state == IMService.STATE_UNCONNECTED) {  // 未连接的
                console.log(7, "im unconnected");
            }
        },
        onReset: function () {
            console.log(8, "reset");
        }
        
    }

配置以及实例化对象

if(!im){
            im = new IMService(observer);
        }
  im.accessToken = imData.token;     //token
  im.host = imData.host;              //通信服务器
  im.device_id = imData.device_id;    //device_id
  im.port = imData.port;              //端口号(一般情况ws:80   wss:443)
  im.observer = observer;			//定义的observer对象
  im.start()						//启动websocket				
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值