Node.js笔记(三)局域网聊天室构建1

server/2024/11/23 21:35:12/

目标

用户与服务端建立通信,服务端能检测到用户端的连接信息

代码

  • 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')socket.on('disconnect',()=>{console.log("an user disconnected")})
})const port =3001
server.listen(port,()=>{console.log(`server is running at http://localhost:${port}`)\\反引号字符串模板
})
  • Html部分<index.html>
<!DOCTYPE html>
<html><head><script src="/socket.io/socket.io.js"></script>\\不能遗漏,这里是让浏览器提前加载socket.io库</head><body><h1>Chat Room</h1><input id="inputtext" placeholder="Enter your message"><button id="inputbtn">Send</button><script>const socket = io()\\浏览器与服务端建立连接的关键</script></body>
</html>

效果

  • JS部分
    输入node chatroom.js运行
    在这里插入图片描述
  • Html部分
    在这里插入图片描述

http://www.ppmy.cn/server/144358.html

相关文章

table元素纯css无限滚动,流畅过度

<template><div class"monitor-table-container"><table class"monitor-table"><thead><th>标题</th><th>标题</th><th>标题</th><th>标题</th></thead><tbody ref&quo…

RabbitMQ高可用延迟消息惰性队列

目录 生产者确认 消息持久化 消费者确认 TTL延迟队列 TTL延迟消息 惰性队列 生产者确认 生产者确认就是&#xff1a;发送消息的人&#xff0c;要确保消息发送给了消息队列&#xff0c;分别是确保到了交换机&#xff0c;确保到了消息队列这两步。 1、在发送消息服务的ap…

基于 NCD 与优化函数结合的非线性优化 PID 控制

基于 NCD 与优化函数结合的非线性优化 PID 控制 1. 引言 NCD&#xff08;Normalized Coprime Factorization Distance&#xff09;优化是一种用于非线性系统的先进控制方法。通过将 NCD 指标与优化算法结合&#xff0c;可以在动态调整控制参数的同时优化控制器性能。此方法特别…

Applied Intelligence投稿

一、关于手稿格式&#xff1a; 1、该期刊是一个二区的&#xff0c;模板使用Springer nature格式&#xff0c; 期刊投稿要求&#xff0c;详细期刊投稿指南&#xff0c;大部分按Soringernature模板即可&#xff0c;图片表格声明参考文献命名要求需注意。 2、参考文献&#xff…

自动驾驶系列—探索自动驾驶数据管理的核心技术与平台

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

Kotlin return与return@forEachIndexed

Kotlin return与returnforEachIndexed fun main() {val data arrayOf(0, 1, 2, 3, 4)println("a")data.forEachIndexed { index, v ->if (v 2) {//类似while循环中的continue//跳过&#xff0c;继续下一个forEachIndexed迭代returnforEachIndexed}println("…

【手写一个spring】spring源码的简单实现--初始化机制,回调机制

文章目录 A. 初始化机制实现初始化机制的方法1.实现InitializingBean接口 B. 回调机制(Aware)初始化机制和回调机制之间的区别 A. 初始化机制 在Spring框架中&#xff0c;初始化机制是Bean生命周期管理的一个重要组成部分。它确保了Bean在创建和依赖注入完成后&#xff0c;能够…

C语言中的结构体,指针,联合体的使用

目录 1. 概述2. 定义和初始化3. 成员的使用4. 结构体数组5. 结构体套结构体6. 结构体赋值7. 结构体和指针8. 结构体作为函数参数9. 共用体&#xff08;联合体&#xff09;10. typedef就是取别名总结 1. 概述 数组&#xff1a;连续的相同数据类型的集合 结构体&#xff1a;不同…