Как работает websocket в javascript по типу модуля? - PullRequest
0 голосов
/ 29 марта 2020

Я работаю с Websocket на javascript. Я получил 'ERR_CONNECTION_REFUSED' для тега javascript с типом = 'module'.

<script type="module" src="{{asset('assets/js/app/helper/queinghelper.js')}}"></script>  //Err_Conn

Ниже приведен код в 'queinghelper.js'

import * as QueSocket from './socket.js'
$(document).ready(function(){
   QueSocket.openWSConnection();
});

И это мой socket.js

function sendMessage(data) {
    if (webSocket.readyState != WebSocket.OPEN) {
        console.error("webSocket is not open: " + webSocket.readyState);
        return;
    }
    webSocket.send(JSON.stringify(data));
}

function openWSConnection() {
    let webSocketURL = null;
    let protocol = "ws" ;
    let hostname = "localhost" ;
    let port     = "8088" ;
    let endpoint = ""; 
    webSocketURL = protocol + "://" + hostname + ":" + port + endpoint;
    console.log("openWSConnection::Connecting to: " + webSocketURL);
    try {
        webSocket = new WebSocket(webSocketURL);
        webSocket.onopen = function(openEvent) {
            console.log("WebSocket OPEN: " + JSON.stringify(openEvent, null, 4));
        };
        webSocket.onclose = function (closeEvent) {
            console.log("WebSocket CLOSE: " + JSON.stringify( closeEvent.data + ' ' + closeEvent.code, null, 4));
        };
        webSocket.onerror = function (errorEvent) {    
            console.log("WebSocket ERROR: " + JSON.stringify(errorEvent.data, null, 4));
        };
        webSocket.onmessage = function (messageEvent) {
            let wsMsg = JSON.parse(messageEvent.data);
        };
    } catch (exception) {
        // console.error(exception);
    }
}

export {openWSConnection,sendMessage}

Это работает, если я удаляю type='module' и перемещаю код с socket.js на queinghelper.js, а также удаляю строку import. Но я хочу использовать сокет из модуля. Любой совет или руководство по этому вопросу будет принята с благодарностью, спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...