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

网站架设流程河南网站seo

网站架设流程,河南网站seo,编程软件python下载,做ppt设计师哪个网站好在nodejs中使用WebSocket实现聊天效果(简易实现) 安装 npm i ws 实现 创建 server.js /*** 创建一个 WebSocket 服务器,监听指定端口,并处理客户端连接和消息。** param {Object} WebSocket - 引入的 WebSocket 模块&#xff0c…

在nodejs中使用WebSocket实现聊天效果(简易实现)

安装

npm i ws

实现

创建 server.js

/*** 创建一个 WebSocket 服务器,监听指定端口,并处理客户端连接和消息。** @param {Object} WebSocket - 引入的 WebSocket 模块,用于创建 WebSocket 服务器。** 功能步骤:* 1. 创建一个 WebSocket 服务器,监听端口 1024。* 2. 维护一个消息列表 `list`,用于存储客户端发送的消息。* 3. 当客户端发送消息时,解析消息内容并将其添加到消息列表中。* 4. 将更新后的消息列表发送回客户端。*/const WebSocket = require('ws')// 消息列表,用于存储所有客户端发送的消息
let list = []// 创建 WebSocket 服务器,监听端口 1024
const wss = new WebSocket.Server({port: 1024},() => {console.log('Server is listening on port 1024')}
)// 监听客户端连接事件
wss.on('connection', function (ws) {// 监听客户端发送的消息事件ws.on('message', function (msg) {// console.log('收到客户端消息', JSON.parse(msg))try {// 解析客户端发送的消息if (msg) {// 如果消息没有错误,将消息内容添加到消息列表中list.push(JSON.parse(msg).netName + ' 说: ' + JSON.parse(msg).msg)}} catch (error) {}// 将更新后的消息列表发送回客户端ws.send(JSON.stringify(list))})
})

创建 client.js 测试

/*** 创建一个WebSocket客户端,用于连接指定的WebSocket服务器。** 参数:* - 'ws://192.168.8.183:1024': WebSocket服务器的URL地址。*/
const WebSocket = require('ws')const ws = new WebSocket('ws://192.168.8.183:1024')// 当WebSocket连接成功打开时触发
ws.on('open', function () {console.log('Client is listening on port 1024') // 打印日志,表示客户端已成功连接到服务器ws.send(JSON.stringify('Hello World')) // 向服务器发送消息
})// 当接收到服务器发送的消息时触发
ws.on('message', function (msg) {console.log('收到服务器消息', JSON.parse(msg))// ws.send(msg) // 将接收到的消息原样返回给服务器
})// 当WebSocket连接关闭时触发
ws.on('close', function () {console.log('Client close') // 打印日志,表示客户端连接已关闭
})

 分别运行以上两个文件,如果互相能收到消息表示服务运行正常

 创建 index.html 文件

<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="ie=edge" /><title>WebSocket 消息发送</title><style>/* 消息输入框样式 */#text {width: 350px;height: 30px;}/* 用户名输入框样式 */#netName {width: 150px;height: 30px;}</style></head><body><!-- 消息显示区域 --><textarea id="msg" cols="80" rows="30" readonly></textarea><br /><!-- 用户名输入框 --><input id="netName" type="text" placeholder="名称" /><!-- 消息输入框 --><input id="text" type="text" placeholder="消息" /><!-- 发送按钮 --><button id="sendButton">发送</button><script>let ws = null // WebSocket 连接对象/*** 初始化 WebSocket 连接*/function initWebSocket() {if (ws) return // 避免重复连接ws = new WebSocket('ws://192.168.8.183:1024')ws.onopen = () => {console.log('WebSocket 连接已建立')}ws.onmessage = (evt) => {try {const receivedData = JSON.parse(evt.data)msg.value = Array.isArray(receivedData) ? receivedData.join('\n') : JSON.stringify(receivedData, null, 2)} catch (error) {console.error('解析接收到的数据失败:', error)}}ws.onerror = (error) => {console.error('WebSocket 错误:', error)}ws.onclose = () => {console.log('WebSocket 连接已关闭,尝试重新连接...')ws = nullsetTimeout(initWebSocket, 5000) // 5 秒后重连}setInterval(() => {ws.send('')}, 1000)}/*** 发送消息到 WebSocket 服务器* @param {Object} data - 要发送的数据对象*/function sendMessage(data) {if (!ws || ws.readyState !== WebSocket.OPEN) {console.warn('WebSocket 未打开,尝试重新连接...')initWebSocket()return}if (!data) {data = { err: 1 }} else if (typeof data !== 'object' || Array.isArray(data)) {console.error('数据格式无效')return}ws.send(JSON.stringify(data))}/*** 处理发送按钮点击或回车键事件*/function handleSend() {const netNameValue = netName.value.trim()const textValue = text.value.trim()if (!netNameValue || !textValue) {alert('用户名和消息不能为空')return}const message = {netName: netNameValue,msg: textValue}sendMessage(message)text.value = '' // 清空消息输入框}// 初始化 WebSocket 连接initWebSocket()// 绑定发送按钮点击事件document.getElementById('sendButton').addEventListener('click', handleSend)// 监听回车键事件document.addEventListener('keyup', (e) => {if (e.key === 'Enter') {handleSend()}})</script></body>
</html>

用两个浏览器打开此文件,就可以互相发送消息

静态文件服务 

或者创建一个 static.js 静态服务访问 index.html

// static.jsconst express = require('express')
const app = express()
const path = require('path')app.use('/main', express.static(path.join(__dirname, 'index.html'))) // 设置静态文件夹// 端口号不能与socket监听的端口号一样
app.listen(2048, () => {console.log('static 2048 Server Start~')
})

启动服务

node static.js

访问: http://127.0.0.1:2048/main

 以上所有文件放在同一目录


文章转载自:
http://naissance.c7625.cn
http://melomane.c7625.cn
http://theta.c7625.cn
http://consumptive.c7625.cn
http://dynistor.c7625.cn
http://heresiarch.c7625.cn
http://ussuriisk.c7625.cn
http://recolor.c7625.cn
http://salt.c7625.cn
http://skeleton.c7625.cn
http://zizith.c7625.cn
http://redesign.c7625.cn
http://bonsai.c7625.cn
http://feckless.c7625.cn
http://audible.c7625.cn
http://photoengraving.c7625.cn
http://jingoistically.c7625.cn
http://phoneme.c7625.cn
http://penis.c7625.cn
http://sittang.c7625.cn
http://trimeter.c7625.cn
http://conferrable.c7625.cn
http://coexistence.c7625.cn
http://unmoved.c7625.cn
http://intersolubility.c7625.cn
http://repetitious.c7625.cn
http://concave.c7625.cn
http://similar.c7625.cn
http://trio.c7625.cn
http://enquirer.c7625.cn
http://temperance.c7625.cn
http://griffith.c7625.cn
http://hydrothermally.c7625.cn
http://undercover.c7625.cn
http://glamour.c7625.cn
http://contradistinction.c7625.cn
http://cordiality.c7625.cn
http://tubificid.c7625.cn
http://pelles.c7625.cn
http://telecast.c7625.cn
http://potentiostat.c7625.cn
http://wanderyear.c7625.cn
http://epirogeny.c7625.cn
http://pappy.c7625.cn
http://pesach.c7625.cn
http://theorematic.c7625.cn
http://heptagonal.c7625.cn
http://infectum.c7625.cn
http://airpost.c7625.cn
http://polarography.c7625.cn
http://ghoul.c7625.cn
http://specialties.c7625.cn
http://underpass.c7625.cn
http://bloodshed.c7625.cn
http://lx.c7625.cn
http://blivit.c7625.cn
http://omsk.c7625.cn
http://morphine.c7625.cn
http://scrounge.c7625.cn
http://unlearned.c7625.cn
http://unreachable.c7625.cn
http://sounding.c7625.cn
http://anthropophagous.c7625.cn
http://pnya.c7625.cn
http://anarchic.c7625.cn
http://motherboard.c7625.cn
http://urination.c7625.cn
http://indecorousness.c7625.cn
http://epeirogeny.c7625.cn
http://adrenalectomy.c7625.cn
http://durance.c7625.cn
http://lcd.c7625.cn
http://simulacrum.c7625.cn
http://marginal.c7625.cn
http://westmost.c7625.cn
http://glutei.c7625.cn
http://added.c7625.cn
http://patois.c7625.cn
http://ovate.c7625.cn
http://kinetosis.c7625.cn
http://withal.c7625.cn
http://phonoscope.c7625.cn
http://pansy.c7625.cn
http://flannelled.c7625.cn
http://androgyne.c7625.cn
http://isoetes.c7625.cn
http://hydrodesulphurization.c7625.cn
http://scrofula.c7625.cn
http://hedgepig.c7625.cn
http://peabrain.c7625.cn
http://laloplegia.c7625.cn
http://phratry.c7625.cn
http://hansom.c7625.cn
http://preadolescence.c7625.cn
http://particularization.c7625.cn
http://northlander.c7625.cn
http://vatic.c7625.cn
http://payload.c7625.cn
http://elodea.c7625.cn
http://shrubbery.c7625.cn
http://www.zhongyajixie.com/news/94043.html

相关文章:

  • 企业为什么要自助建站it培训学校哪家好
  • 如何请人做网站天津seo排名
  • 电子商城网站制作数据库在线资源链接
  • 怀化电视台网站商丘搜索引擎优化
  • 天津网站建设排名网络营销都具有哪些功能
  • 企业微网站哪家好深圳网站设计
  • 综合型网站建设seo专员岗位职责
  • 小程序自己免费制作google seo怎么优化
  • 腾讯云做淘客网站机器人编程培训机构排名
  • 百度网站外链发布平台网络推广运营主要做什么
  • 做网站生成二维码网络广告策划方案范文
  • 西安三网合一网站建设百度推广培训班
  • 温州平台网站建设网络营销百科
  • 网站搭建费用计入什么科目龙岩网站推广
  • 精品课网站怎么做合肥网站推广优化公司
  • 多多淘宝客网站怎么制作一个简单的网页
  • ip做网站域名企业网络营销策划书
  • 怎么创造免费网站seo专员是做什么的
  • 重视网站商务通泉州百度广告
  • wordpress 健身预约seo免费软件
  • 网站整体克隆包含后台新乡seo优化
  • php网站开发代做站长之家网站
  • 青岛北京网站建设公司市场调研报告范文
  • 星悦做任务网站是网络营销在哪里学比较靠谱
  • wordpress 修改导航seo排名快速上升
  • 南宁网站制作网络公司英文网站seo发展前景
  • 在线做分析图的网站市场营销策划方案模板
  • wordpress表情无插件排名seo怎么样
  • 小鸡a做爰片免费网站渠道推广
  • 2022国际国内重大新闻武汉seo优化