当前位置: 首页 > article >正文

Node.js笔记(四)局域网聊天室2:服务端接受客户端消息

目标

客户端服务端建立连接加载,服务端能接受客户端传过来的消息

代码

  • JS部分<chatroom.js>
const express = require('express')
const http = require('http')
const {Server} = require('socket.io')

const app = express()
const server = http.createServer(app)
const io = new Server(server)

app.use(express.static(__dirname))
io.on('connect',(socket)=>{
    console.log('an user connected')
    \\监听客户端的信息,注意函数的第一个事件参数名要与Html部分里的事件名保持一致
    socket.on('chat message',(msg)=>{
        console.log('Message received:',msg)
    })
    socket.on('disconnect',()=>{
        console.log("an user disconnected")
    })
}
    
)

const port =3001
server.listen(port,()=>{
    console.log(`server is running at http://localhost:${port}`)
})

socket.on()的第一个参数是事件名,事件名有一些是库里预先定好的可以比如connectdisconnect等,其他的都可以自己定义。同时非常关键的一点,如果是想让htmljs产生互动,就必须保持事件名的一致性

  • Html部分<index.html>
<!DOCTYPE html>
<html>
    <head>
        <script src="/socket.io/socket.io.js"></script>
    </head>
    <body>
        <h1>Chat Room</h1>
        <input id="inputtext" placeholder="Enter your message">
        <button id="sendbtn">Send</button>
        <script>
            const socket = io()
            const input = document.getElementById('inputtext')
            const sendbtn = document.getElementById('sendbtn')
            sendbtn.addEventListener("click",()=>{
                const message = input.value
                if(message){
                    socket.emit("chat message",message)
                    input.value=''
                }
            })
            socket.on('chat message',(msg)>{

            })
        </script>
    </body>
</html>

效果

  • JS部分<chatroom.js>
    在这里插入图片描述

  • Html部分<index.html>

在这里插入图片描述


http://www.kler.cn/a/405745.html

相关文章:

  • Kafka 生产者优化与数据处理经验
  • Shell编程-8
  • java 并发编程 (2)Thread 类和 Runnable 接口详解
  • Android 网络通信(三)OkHttp实现登入
  • 图的存储、遍历以及Dijkstra/Floyd/Kruskal/Prim/拓扑排序/关键路径(实验8--作业)
  • 基于单片机的条形码识别结算设计
  • PostGIS分区表创建
  • 探索 Python 字典的奥秘:Future 对象为何能成为字典的键?
  • 【UE5】Slider控件样式
  • 【ubuntu24.04】安装mongodb社区版本
  • 14.C++STL1(STL简介)
  • 标题gitLab如何打标签
  • DASCTF 2024 10月 Reverse 完成笔记 附题目
  • 红帽RHCSA认证怎么报名?红帽初级认证报考指南!
  • 【单点知识】基于PyTorch讲解自动编码器(Autoencoder)
  • 【数据分享】中国价格统计年鉴(2013-2024) PDF
  • 区块链安全常见的攻击——自毁漏洞(Self-Destruct Vulnerability)【2】
  • C++
  • Vue3 使用v-for 渲染列表数据后更新
  • SQLSever显示物理和逻辑 IO活动量的相关信息及显示分析、编译和执行各语句所需的毫秒数。
  • vue2 src_消息订阅和发布(pubsub-js)
  • 冲破AI 浪潮冲击下的 迷茫与焦虑
  • C语言字符串搜索函数
  • MATLAB读入不同类型图像并显示图像和相关信息
  • springboot基于微信小程序的农产品交易平台
  • uni-app 玩转条件编译:自定义平台的条件编译实战详解