🤟致敬读者
- 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉
📘博主相关
📃文章前言
- 🔷文章均为学习工作中整理的笔记。
- 🔶如有错误请指正,共同学习进步。
一、nodejs环境
安装node.js
配置nodejs的环境
参考文章:nodejs下载安装配置
二、js客户端
创建文件client.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>websocket测试</title>
</head>
<body>
<button onclick="sendMessage()">发消息给服务器</button>
</body>
</html>
<!-- <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> -->
<script type="text/javascript">
// 打开一个 web socket,设定websocket服务器地址和端口
const ws = new WebSocket("ws://127.0.0.1:8888/");
//开启连接open后客户端处理方法
ws.onopen = function(event)
{
// Web Socket 已连接上,在页面中显示消息
// document.getElementById('res').innerHTML="当前客户端已经连接到websocket服务器";
console.log('websocket已连接')
};
// 点击按钮时给websocket服务器端发送消息
// $('#btn').click(function(){
// var value = $('#demo').val();
// console.log(value)
// ws.send(value);
// })
// 接收消息后客户端处理方法
ws.onmessage = function (event)
{
//接收到服务端的消息后,输出打印收到消息的内容
console.log('收到服务端回复的消息:'+event.data);
// $('#res').text(evt.data);
};
// 关闭websocket
ws.onclose = function(event)
{
// 关闭 websocket
alert("连接已关闭...");
};
//发送给服务端的消息内容
function sendMessage(){
ws.send("hello server, I am client")
}
</script>
三、js服务端
1. 初始化
输入命令执行初始化
npm init -y
执行后会出现一个josn文件
2. 安装ws
打开终端输入命令安装ws
npm install ws
然后会多出一个node_modules的文件夹,用来放引入的ws包
3. 创建文件server.js作为服务器
const http = require('http');
const websocket = require('ws');
const server = http.createServer();
const wss = new websocket.Server({server});
//绑定事件,建立连接
wss.on('connection',(socket)=>{
console.log('websocket已连接');
//收到客户端发来的消息
socket.on('message',(message)=>{
//打印收到的消息
console.log('收到客户端发来的消息:'+message);
//收到后返回消息给客户端
socket.send('hello client, I am server, I received')
});
socket.on('close', ()=>{
console.log('websocket连接已关闭');
});
});
server.on('request', (request, response)=>{
response.writeHead(200, {'Content-Type':'text/plain'});
response.end('Hello,world1111!');
});
server.listen(8888, ()=>{
console.log('服务已启动,端口号为8888');
});
四、测试
1. 启动服务器
终端启动sever.js作为服务器
node server.js
2. 启动客户端
打开client.html到浏览器中
此时服务器会显示与客户端建立连接
浏览器页面右键检查 —> NetWork —> WS —> Console
刷新页面,显示已连接
3. 测试
此时页面点击发送消息到服务端
服务端控制台显示收到客户端发来的消息
页面Console显示收到的消息
这就是nodejs实现的websocket客户端和服务端的实时收发消息
📜文末寄语
- 🟠关注我,获取更多内容。
- 🟡技术动态、实战教程、问题解决方案等内容持续更新中。
- 🟢《全栈知识库》技术交流和分享社区,集结全栈各领域开发者,期待你的加入。
- 🔵加入开发者的《专属社群》,分享交流,技术之路不再孤独,一起变强。
- 🟣点击下方名片获取更多内容🍭🍭🍭👇