WebSocket.Server はコンストラクタではありません
上記のエラーに遭遇した場合、cjs の形式を mjs の形式に変更しましたが、機能しませんでした。
import WebSocket from "ws"
console.log(typeof WebSocket)
console.log(typeof WebSocket.Server)
// function
// undefined
エラーメッセージ「WebSocket.Server is not a constructor
」をキーワードとして検索しても原因がわかりませんでした。
別の方法を試してみると、「import WebSocket from 'ws'
」というコードを見つけました。コードは以下のようになります:
import WebSocket, { WebSocketServer } from 'ws';
console.log(typeof WebSocket)
console.log(typeof WebSocketServer)
// function
// function
その後、ws ライブラリのエクスポートファイルを確認しました。
// cjs
'use strict';
const WebSocket = require('./lib/websocket');
WebSocket.createWebSocketStream = require('./lib/stream');
WebSocket.Server = require('./lib/websocket-server');
WebSocket.Receiver = require('./lib/receiver');
WebSocket.Sender = require('./lib/sender');
WebSocket.WebSocket = WebSocket;
WebSocket.WebSocketServer = WebSocket.Server;
module.exports = WebSocket;
// mjs
import createWebSocketStream from './lib/stream.js';
import Receiver from './lib/receiver.js';
import Sender from './lib/sender.js';
import WebSocket from './lib/websocket.js';
import WebSocketServer from './lib/websocket-server.js';
export { createWebSocketStream, Receiver, Sender, WebSocket, WebSocketServer };
export default WebSocket;
違いはかなり大きいです Orz;