• js实现websocket服务端和客户端


    天行健,君子以自强不息;地势坤,君子以厚德载物。


    每个人都有惰性,但不断学习是好好生活的根本,共勉!


    文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。


    一、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 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>
    
    • 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
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49

    三、js服务端

    1. 初始化

    输入命令执行初始化

    npm init -y
    
    • 1

    在这里插入图片描述
    执行后会出现一个josn文件
    在这里插入图片描述

    2. 安装ws

    打开终端输入命令安装ws

    npm install ws
    
    • 1

    在这里插入图片描述
    然后会多出一个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
    • 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

    四、测试

    1. 启动服务器

    终端启动sever.js作为服务器

    node server.js
    
    • 1

    在这里插入图片描述

    2. 启动客户端

    打开client.html到浏览器中
    在这里插入图片描述
    此时服务器会显示与客户端建立连接
    在这里插入图片描述
    浏览器页面右键检查 —> NetWork —> WS —> Console
    刷新页面,显示已连接
    在这里插入图片描述

    3. 测试

    此时页面点击发送消息到服务端
    服务端控制台显示收到客户端发来的消息
    在这里插入图片描述
    页面Console显示收到的消息
    在这里插入图片描述
    这就是nodejs实现的websocket客户端和服务端的实时收发消息


    感谢阅读,祝君暴富!

  • 相关阅读:
    后悔怎么没早点看到!腾讯T3整理实战书籍:(Spring MVC +MyBatis快速开发与项目实战pdf)
    R语言使用mean函数计算样本(观测)数据中指定变量的相对频数:计算时间序列数据中大于前一个观测值的观测值所占的比例总体的比例
    airplay:发现的实现
    蓝桥杯打卡Day6
    电子管晶体管示波器电路图
    聊聊秒杀系统的设计(一)
    如何上传服务器代码到GitHub上,并更新
    [C]精炼分析状态机FSM
    关于Flask高级视图_蓝图的使用方法
    游戏声效知多少-Unity
  • 原文地址:https://blog.csdn.net/mo_sss/article/details/132793308