JavaScript实现WebSocket服务端和客户端

本文介绍了如何在Node.js环境中配置并使用WebSocket实现客户端与服务端的实时通信,包括安装Node.js、设置环境、创建服务器和客户端示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

🤟致敬读者

  • 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉

📘博主相关



📃文章前言

  • 🔷文章均为学习工作中整理的笔记。
  • 🔶如有错误请指正,共同学习进步。

一、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客户端和服务端的实时收发消息


📜文末寄语

  • 🟠关注我,获取更多内容。
  • 🟡技术动态、实战教程、问题解决方案等内容持续更新中。
  • 🟢《全栈知识库》技术交流和分享社区,集结全栈各领域开发者,期待你的加入。
  • 🔵​加入开发者的《专属社群》,分享交流,技术之路不再孤独,一起变强。
  • 🟣点击下方名片获取更多内容🍭🍭🍭👇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值