后端使用 nodejs 开发,使用到了nodejs-websocket 库
前端使用了 H5 原生的 WebSocket 功能
直接上代码
后端代码(backend.js):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| const ws = require('nodejs-websocket');
function run(port = 6868, host = 'localhost') { return new Promise((resolve) => { const server = ws.createServer((connection) => { console.log('检测到新的连接'); resolve(connection); });
server.listen(port, host); }); }
async function test() { let socket = await run();
socket.sendText('服务端发出的信息');
socket.on('text', (str) => { console.log(`服务端收到的信息:${str}`); }); }
test();
|
前端代码(frontend.html):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head>
<body> <script>
function run(url) { return new Promise((resolve) => { let socket = new WebSocket(url); socket.addEventListener('open', () => { console.log('创建连接成功'); resolve(socket); }); }); }
async function test() { let socket = await run('ws://localhost:6868');
socket.send('客户端发出的信息');
socket.addEventListener('message', (res) => { console.log(`客户端收到的信息:${res.data}`); }); }
test(); </script> </body> </html>
|