为了账号安全,请及时绑定邮箱和手机立即绑定

关于Websocket先创建连接,后注册事件,不会漏掉消息吗?

关于Websocket先创建连接,后注册事件,不会漏掉消息吗?

白板的微信 2018-12-21 19:14:27
    let socket = new WebSocket('ws://echo.websocket.org/')    socket.addEventListener('open', e => {      console.log('open')    })    socket.addEventListener('message', e => {      console.log(e.data)    })一直有个疑问:先创建连接,后注册事件,不会漏掉消息吗?
查看完整描述

1 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

在本地直接搭了一个用ws搭了个简易websocket服务器,然后尝试的结果是,是会丢失的。

server.js


var WebSocketServer = require('ws').Server,

wss = new WebSocketServer({ port: 8181 });

wss.on('connection', function (ws) {

    console.log('client connected');

    ws.on('message', function (message) {

        console.log(message);

        if (ws.readyState == 1) {


                ws.send('JSON.stringify(stocksObj)');//

        }

    });

});

客户端js

用了setTimeout模拟了一下。只有在绑定了监听事件之后才能正常接收到信息。


var ws = new WebSocket("ws://localhost:8181");

setTimeout(function(){

    ws.onopen = function (e) {

        console.log('Connection to server opened');

    }

ws.onmessage = function (e) {

  console.log(e.data)

}    },3000)

function sendMessage() {

    ws.send(123);

}


查看完整回答
反对 回复 2019-01-25
  • 1 回答
  • 0 关注
  • 1086 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信