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

WebSocket 前端node启用ws调试

server.js

<!-- WebSocket 实时通信 -->

<!-- 2 npm install ws -->

 <!-- 3 npm list ws  看安装上没-->

<!-- 本地起websocket 创建 WebSocket 服务器文件 server.js -->

 <!-- 4 4️⃣ 启动服务器 node server.js -->

<!-- WebSocket 实时通信 -->
<!-- 2 npm install ws --><!-- 3 npm list ws  看安装上没-->
<!-- 本地起websocket 创建 WebSocket 服务器文件 server.js --><!-- 4 4️⃣ 启动服务器 node server.js -->
<template><div class="websocket-chat"><div class="chat" style="border: 1px solid #ccc; padding: 10px; height: 200px; overflow-y: auto;"><p v-for="(msg, index) in messages" :key="index">{{ msg }}</p></div><inputtype="text"v-model="messageInput"placeholder="Type your message"@keyup.enter="sendMessage"style="margin-top: 10px; padding: 5px;"/><button @click="sendMessage" style="margin-left: 5px; padding: 5px 10px;">Send</button></div>
</template><script setup lang="ts">
import { ref, onMounted, onBeforeUnmount } from 'vue'const messages = ref<string[]>([])
const messageInput = ref('')
let socket: WebSocket | null = null
const isConnected = ref(false) // 标识连接状态onMounted(() => {try {socket = new WebSocket('ws://localhost:8888')// 带token// socket = new WebSocket(`wss://api.example.com/ws?token=${userToken}`)socket.onopen = (event) => {console.log('WebSocket connection opened:', event)isConnected.value = truemessages.value.push('✅ 已连接 WebSocket 服务器')}socket.onmessage = (event) => {//   messages.value.push(`${data.userName}: ${data.content}`)messages.value.push('收到: ' + event.data)}socket.onclose = (event) => {console.log('WebSocket connection closed:', event)isConnected.value = falsemessages.value.push('❌ WebSocket 已关闭')}socket.onerror = (event) => {console.error('WebSocket error:', event)isConnected.value = falsemessages.value.push('⚠️ WebSocket 出错或未连接')}} catch (error) {console.error('WebSocket 初始化失败:', error)messages.value.push('⚠️ WebSocket 初始化失败')}
})onBeforeUnmount(() => {socket?.close()
})const sendMessage = () => {if (!isConnected.value) {messages.value.push('⚠️ 发送失败,WebSocket 未连接')return}if (socket && socket.readyState === WebSocket.OPEN && messageInput.value.trim() !== '') {
/*     socket.send(JSON.stringify({type: 'chat',content: messageInput.value,userId: currentUserId
})) */socket.send(messageInput.value)messages.value.push('发送: ' + messageInput.value)messageInput.value = ''}
}
</script><style scoped>
.websocket-chat input {width: 300px;
}
</style>

server.js文件

server.js
// server.js (ES Module)
import { WebSocketServer } from 'ws'// 创建 WebSocket 服务器,监听 8888
const wss = new WebSocketServer({ port: 8888 }, () => {console.log('WebSocket 服务器已启动,端口 8888')
})wss.on('connection', (ws) => {console.log('客户端已连接')ws.send('欢迎连接本地 WebSocket 服务器!')ws.on('message', (message) => {console.log('收到客户端消息:', message)// 广播给所有客户端wss.clients.forEach((client) => {if (client.readyState === ws.OPEN) {client.send(`广播: ${message}`)}})})ws.on('close', () => {console.log('客户端断开连接')})ws.on('error', (err) => {console.error('WebSocket 错误:', err)})
})
http://www.dtcms.com/a/578478.html

相关文章:

  • ArcGIS与ENVI在生态影响评价中的融合应用:八大专题图制作全解析
  • AI赋能企业办公:文多多AiPPT以技术创新破解行业痛点
  • 网站建设用哪的图片不侵权语言 网站开发
  • 网站建设公司的前景字体设计素材网
  • 嵌入式单片机各种通信(UART/RS232/RS485/I2C/CAN/ SPI)
  • 特斯拉股东大会前瞻,Optimus利好已至
  • 网站宣传的方法主要有2.0网站线上建设什么意思
  • iSCSI 磁盘扩容后节点不刷新容量的问题解决(StarWind + Linux)
  • Linux——web服务
  • 做淘宝客网站哪个好用wordpress文章图片保存到本地
  • 光子精密闪测仪 为中国制造提供更可靠、更高效、更懂工艺的尺寸测量方案
  • 上海设计师网站有哪些个人网站怎么设计
  • 【数据结构】非线性结构——树、堆,散列表和图
  • 怎样在百度上建网站南昌模板建站公司
  • 锐旗 天梯网站建设重庆seo网站系统
  • 学院校园网网站建设情况手机行业网站
  • 江苏恒健建设集团有限公司网站校车网站建设
  • 玉林建设工程信息网站专门做纪录片的网站
  • 启动服务上FUNASR 服务 ws 连接
  • 一些实用的linux指令
  • 操作系统第一章学习
  • 超链接查看太麻烦,Excel怎么快速提取单元格内的超链接地址?
  • 大学生课程设计网站seo网站排名优化快速排
  • React Native Community CLI命令执行 | CVE-2025-11953 复现研究
  • 大厂做网站shijuewang如何用ps做创意视频网站
  • 公司设计网站电商毕业设计作品
  • 如何利用天燃气分析仪优化管网能效与安全
  • 考研408--计算机网络--day3--通信基础信道编码与调制
  • 许昌市建设信息网站win7电脑做网站
  • 7.无监督学习