diff --git a/docs/Client.md b/docs/Client.md index a0c11c2f..b9ffc0cf 100644 --- a/docs/Client.md +++ b/docs/Client.md @@ -34,13 +34,13 @@ Client connection stream object. In the case of `net.createServer`, `conn` passed to the `connectionlistener` function by node's [net.createServer](https://nodejs.org/api/net.html#net_net_createserver_options_connectionlistener) API. -In the case of [`websocket-stream`][websocket-stream], it's the `stream` argument passed to the websocket `handle` function in [`websocket-stream #on-the-server`][websocket-stream-doc-on-the-server]]. +In the case of [`ws`][ws], it's the `stream.Duplex` argument passed to the `handle` function. ## client.req - `` -only for [`websocket-stream`][websocket-stream]. It is a HTTP Websocket upgrade request object passed to websocket `handle` function in [`websocket-stream #on-the-server`][websocket-stream-doc-on-the-server]. It gives an option for accessing headers or cookies. +only for [`ws`][ws]. It is a HTTP Websocket upgrade request object passed to the `handle` function. It gives an option for accessing headers or cookies. ## client.connecting @@ -152,5 +152,4 @@ Clear all outgoing messages (QoS > 1) related to this client from persistence [SUBSCRIBE]: https://github.com/mqttjs/mqtt-packet#subscribe [UNSUBSCRIBE]: https://github.com/mqttjs/mqtt-packet#unsubscribe -[websocket-stream]: https://www.npmjs.com/websocket-stream -[websocket-stream-doc-on-the-server]: https://github.com/maxogden/websocket-stream/blob/master/readme.md#on-the-server +[ws]: https://www.npmjs.com/package/ws diff --git a/docs/Examples.md b/docs/Examples.md index 808888af..f45c2615 100644 --- a/docs/Examples.md +++ b/docs/Examples.md @@ -67,10 +67,17 @@ server.listen(port, function () { ```js const aedes = require('aedes')() const httpServer = require('http').createServer() -const ws = require('websocket-stream') +const ws = require('ws') const port = 8888 -ws.createServer({ server: httpServer }, aedes.handle) +const wss = new ws.WebSocketServer({ + server:httpServer +}) + +wss.on('connection', (websocket, req) => { + const stream = ws.createWebSocketStream(websocket) + aedes.handle(stream, req) +}) httpServer.listen(port, function () { console.log('websocket server listening on port ', port) diff --git a/example.js b/example.js index 2ab5144c..0423ceaf 100644 --- a/example.js +++ b/example.js @@ -3,7 +3,7 @@ const aedes = require('./aedes')() const server = require('net').createServer(aedes.handle) const httpServer = require('http').createServer() -const ws = require('websocket-stream') +const ws = require('ws') const port = 1883 const wsPort = 8888 @@ -11,9 +11,14 @@ server.listen(port, function () { console.log('server listening on port', port) }) -ws.createServer({ - server: httpServer -}, aedes.handle) +const wss = new ws.WebSocketServer({ + server +}) + +wss.on('connection', (websocket, req) => { + const stream = ws.createWebSocketStream(websocket) + aedes.handle(stream, req) +}) httpServer.listen(wsPort, function () { console.log('websocket server listening on port', wsPort) diff --git a/package.json b/package.json index 313bba28..84125634 100644 --- a/package.json +++ b/package.json @@ -118,7 +118,7 @@ "tap": "^16.3.10", "tsd": "^0.32.0", "typescript": "^5.8.3", - "websocket-stream": "^5.5.2" + "ws": "^8.18.2" }, "dependencies": { "aedes-packet": "^3.0.0", diff --git a/test/connect.js b/test/connect.js index fb6de7f9..1e70ef15 100644 --- a/test/connect.js +++ b/test/connect.js @@ -2,7 +2,7 @@ const { test } = require('tap') const http = require('http') -const ws = require('websocket-stream') +const ws = require('ws') const mqtt = require('mqtt') const { setup, connect, delay } = require('./helper') const aedes = require('../') @@ -720,7 +720,7 @@ test('Test queue limit', function (t) { }) }) -// websocket-stream based connections +// websocket based connections test('websocket clients have access to the request object', function (t) { t.plan(3) @@ -738,9 +738,14 @@ test('websocket clients have access to the request object', function (t) { }) const server = http.createServer() - ws.createServer({ + const wss = new ws.WebSocketServer({ server - }, broker.handle) + }) + wss.on('connection', (websocket, req) => { + // websocket is a WebSocket, but aedes expects a stream. + const stream = ws.createWebSocketStream(websocket) + broker.handle(stream, req) + }) server.listen(port, function (err) { t.error(err, 'no error')