diff --git a/examples/textarea.mjs b/examples/textarea.mjs index c16d5234..e8ad0aed 100644 --- a/examples/textarea.mjs +++ b/examples/textarea.mjs @@ -2,7 +2,7 @@ import * as Y from '../index.mjs' import { WebsocketProvider } from '../provider/websocket.mjs' import { TextareaBinding } from '../bindings/textarea.mjs' -const provider = new WebsocketProvider('ws://35.246.255.92:1234') +const provider = new WebsocketProvider('ws://localhost:1234') const ydocument = provider.get('textarea') const type = ydocument.define('textarea', Y.Text) const textarea = document.querySelector('textarea') diff --git a/provider/websocket/server.mjs b/provider/websocket/server.mjs index 148425d8..8f28210f 100644 --- a/provider/websocket/server.mjs +++ b/provider/websocket/server.mjs @@ -4,10 +4,17 @@ import * as Y from '../../index.mjs' import WebSocket from 'ws' +import http from 'http' const port = process.env.PORT || 1234 -const wss = new WebSocket.Server({ port }) +const server = http.createServer((req, res) => { + res.writeHead(200, { 'Content-Type': 'text/plain' }) + res.end('okay') +}) + +const wss = new WebSocket.Server({ noServer: true }) + const docs = new Map() const messageSync = 0 @@ -107,4 +114,13 @@ const setupConnection = (conn, req) => { wss.on('connection', setupConnection) +server.on('upgrade', (request, socket, head) => { + // You may check auth of request here.. + wss.handleUpgrade(request, socket, head, ws => { + wss.emit('connection', ws, request) + }) +}) + +server.listen(port) + console.log('running on port', port)