Как я могу обернуть класс сервера WebSocket в Node.js, ws и es6-class? - PullRequest
0 голосов
/ 16 апреля 2019

Я новичок в Node.js.
Недавно я хотел бы построить модульную систему на основе класса es6.
Я пытаюсь обернуть модуль ws в класс, и вот прототип моего кода:

const WebSocket = require('ws')

export default class WebSocketServer {
  constructor(port = 9876) {
    this.wss = new WebSocket.Server({
      port,
      perMessageDeflate: false
    })

    this.wss.on('connection', (function _connection(ws) {
      this.connection(ws)
    }).bind(this))
  }

  connection(ws) {
    return new Promise(function (resolve, reject){
      ws.on('message', function _incoming(message){
        console.log('received: %s', message)
      })

      ws.send('Welcome!', function ack(err){
        if(err) {
          reject(`Connection error: ${err}`)
        } 
        else {
          resolve('Connection created.')
        }   
      })
    })
  }
}

Несколько вопросов:
1. Интересно, моя логика верна?
2. Есть ли простой способ вместо этого связать 'this' с функцией обратного вызова?

Спасибо!

...