Расширение класса WebSocket - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь создать свой собственный класс WebSocket.

function WebConnect(){
    WebSocket.call(this, "wss://ws.achex.ca/")
}

WebConnect.prototype = Object.create(WebSocket.prototype);

WebConnect.prototype.onopen = function(evt){ console.log(evt) }

...

WebConnect.prototype.anotherWsFunction = function(){...}

Но когда я пытаюсь создать этот класс var a = new WebConnect(), я застреваю в этой ошибке: "Uncaught TypeError: Не удалось создать 'WebSocket': используйте оператор 'new', этот конструктор объекта DOM нельзя вызвать как функцию."

Я не понимаю, что я делаю неправильно.

Я пытаюсь сделать это таким образом, потому что я хотел бы определить "onopen, onclose, .." уже определенные события плюс некоторые пользовательские методы при создании этого класса, поэтому я можете использовать их позже в другом классе

function SOCKET(props){
    this.websocket = new WebConnect();
    this.lobby = new Lobby();
    ...
}

EDIT:

class WebConnect extends WebSocket {
    constructor(wsuri) {
        super(wsuri)
    }

    onopen(event) {
        console.log("Connection open event:");
        console.log(event);
    }

    onclose(event) {
        console.log("Connection closed event:");
        console.log(event);
    }

    onerror(event) {
        console.log("Connection error event:");
        console.log(event);
    }

    onmessage(event) {
        console.log("Message event:");
        console.log(event);
    }
}

после комментария @PatrickRoberts подход класса ES6 тоже не работает если var a = new WebConnect(wsuri), то a.onopen == null

EDIT: Есть идеи, пожалуйста? Прямо сейчас я использую обертку. Но возможно ли сделать это «расширением класса»?

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