webSocket

安装命令

  • npm init -y
  • npm i --save socket.io

客户端

<!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>socketclient.html</title>
</head>

<body>
    <button id="btn">点我建立webSocket连接</button>
    <button id="btn2">点我发消息:你瞅啥?</button>
    <button id="btn3">点我发消息:再瞅一个试试?</button>
    <script src="./socket.io.js"></script>
    <script>
        let socket;
        btn.onclick = function () {
            //io需要引入socket.io.js它在node_modules中
            socket = io('http://localhost:3000')
            console.log(socket);
            // 接收消息
            socket.on('textmsg', function (data) {
                alert(data)
            })
        }
        btn2.onclick = function () {
            if (socket == undefined) {
                alert('先点按钮建立客户端和服务器的连接,才能发消息')
                return
            }
            socket.emit('textmsg', '你瞅啥?')
        }
        btn3.onclick = function () {
            if (socket == undefined) {
                alert('先点按钮建立客户端和服务器的连接,才能发消息')
                return
            }
            socket.emit('textmsg', '再瞅一个试试?')
        }


    </script>
</body>

</html>

服务器端index.js

const http = require('http').createServer()
// 引入socket.io,并把socket.io挂载到http服务器中
// 这样http服务器可以接收客户端socketio的请求
// http前是函数 调用并传参http
const socketio = require('socket.io')(http, {
    cors: {
        origin: '*'//解决跨域问题,写完解决跨域要重启服务器
    }
})
// 基于socketio 监听客户端的websocket长连接,
//连接成功后打印
socketio.on('connection', function (socket) {
    console.log('有客户端进来了' + socket.id);
    // 监听接收消息
    socket.on('textmsg', function (data) {
        console.log('接收客户端的消息:' + data);
        // 恢复客户端,给客户端发消息
        if (/你瞅啥/.test(data)) {
            socket.emit('textmsg',
                '瞅你咋滴')
        } else if (/瞅一个试试/.test(data)) {
            socketio.emit('textmsg', '群殴!')
        }
    })
})
// http服务器监听端口接收客户端的请求
http.listen(3000, function () {
    console.log('websocket服务已启动...');
})

结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值