愿所有的美好和期待都能如约而至

WebSocket Java脚本的多个处理程序

发布时间:  来源:互联网  作者:匿名  标签:error Multiple Handlers for Websocket Javascript exception extjs IT资讯 javascript  热度:37.5℃

本文介绍了WebSocket Java脚本的多个处理程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们是否有可能为同一个Webockket会话使用多个处理程序(OnMessage方法)?
在下面的代码中,只有一个OnMessage方法处理来自客户端的消息。
但是,我们是否有可能为同一个WebSocket会话使用多个OnMessage处理程序方法?

编码:

    var url = window.location.href;
    var arr = url.split("/");
    var redirectURL = arr[0] + "//" + arr[2];
    var wsURL = redirectURL.replace('http','ws');
    var ws = new WebSocket(wsURL+'/abc');
    ws.onopen = function(event) {
        var data = '{"userId":' + sessionStorage.getItem('userID') + '}';
        ws.send((data));
    };

    ws.onmessage = function(event) {
        var msg = event.data;
        console.info('Push Message : ' + msg);
        Ext.toast({
             html: msg,
             title: 'Alert',
             align: 'br',
             autoShow : true
        });

    };

推荐答案

WebSocket对象支持.addEventListener(),所以您可以这样做:

var url = window.location.href;
var arr = url.split("/");
var redirectURL = arr[0] + "//" + arr[2];
var wsURL = redirectURL.replace('http','ws');
var ws = new WebSocket(wsURL+'/abc');
ws.addEventListener("open", function(event) {
    var data = '{"userId":' + sessionStorage.getItem('userID') + '}';
    ws.send((data));
});

ws.addEventListener("message", function(event) {
    var msg = event.data;
    console.info('Push Message : ' + msg);
    Ext.toast({
         html: msg,
         title: 'Alert',
         align: 'br',
         autoShow : true
    });

});

// some other listener for incoming messages
ws.addEventListener("message", function(event) {
    // code here
});

这篇关于WebSocket Java脚本的多个处理程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,

勇敢去编程!

勇敢的热爱编程,未来的你一定会大放异彩,未来的生活一定会因编程更好!

TOP