node+ws模块实现websocket
Posted meetqy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node+ws模块实现websocket相关的知识,希望对你有一定的参考价值。
先来吐槽一下,想要找点技术文章真tm不容易,全是jb复制粘贴,还冒充原创。搜索一个ws实现websocket全是一样的。一个字都没变,我能说什么。最后想到搜索ws模块githup居然前两页没有,也是那些重复的文章,无力吐槽。奉上一个githup上面的(虽然全是英文的,但是绝壁比那些复制粘贴的好)https://github.com/websockets/ws#broadcast-example
先来看下我的成果:在谷歌和火狐浏览器上链接上websocet实现同步。
客户端1
客户端2
客户端1
先贴上我的后台代码(nodejs):
需要安装express模块、ws模块
1 var express = require(‘express‘); 2 var http = require(‘http‘); 3 var WebSocket = require(‘ws‘); 4 5 var app = express(); 6 app.use(express.static(__dirname)); 7 8 var server = http.createServer(app); 9 var wss = new WebSocket.Server({server}); 10 11 wss.on(‘connection‘, function connection(ws) { 12 console.log(‘链接成功!‘); 13 ws.on(‘message‘, function incoming(data) { 14 /** 15 * 把消息发送到所有的客户端 16 * wss.clients获取所有链接的客户端 17 */ 18 wss.clients.forEach(function each(client) { 19 client.send(data); 20 }); 21 }); 22 }); 23 24 server.listen(8000, function listening() { 25 console.log(‘服务器启动成功!‘); 26 });
客户端代码:
1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" 6 content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> 7 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 8 <title>在线聊天</title> 9 </head> 10 <body> 11 <input type="text" onblur="wsServer.onopen(this.value)"> 12 <script> 13 var wsServer = new WebSocket(‘ws://127.0.0.1:8000‘); 14 wsServer.onopen = function (e) { 15 (typeof e == ‘string‘) && wsServer.send(e);//向后台发送数据 16 }; 17 wsServer.onclose = function (e) {//当链接关闭的时候触发 18 19 }; 20 wsServer.onmessage = function (e) {//后台返回消息的时候触发 21 console.log(e); 22 }; 23 wsServer.onerror = function (e) {//错误情况触发 24 25 } 26 </script> 27 </body> 28 </html>
写的很简单,反正能运行就行。更多内容点击:meetqy
以上是关于node+ws模块实现websocket的主要内容,如果未能解决你的问题,请参考以下文章
❤️一个聊天室案例带你了解Node.js+ws模块是如何实现websocket通信的!