当前位置:首页 > JavaScript

js消息实现

2026-04-05 18:50:42JavaScript

使用 WebSocket 实现实时消息通信

WebSocket 是一种全双工通信协议,适合实时消息场景。以下是一个简单的实现示例:

客户端代码(浏览器端)

const socket = new WebSocket('ws://your-server-address');

socket.onopen = () => {
  console.log('连接已建立');
  socket.send('Hello Server!');
};

socket.onmessage = (event) => {
  console.log('收到消息:', event.data);
};

socket.onclose = () => {
  console.log('连接关闭');
};

服务端代码(Node.js + ws 库)

const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', (ws) => {
  ws.on('message', (message) => {
    console.log('收到客户端消息:', message.toString());
    ws.send('Server Response');
  });
});

使用 EventSource 实现服务器推送(SSE)

SSE 适用于单向服务器推送场景,兼容性良好。

客户端代码

js消息实现

const eventSource = new EventSource('/sse-endpoint');

eventSource.onmessage = (event) => {
  console.log('收到推送:', event.data);
};

eventSource.onerror = () => {
  console.error('连接异常');
};

服务端代码(Node.js + Express)

const express = require('express');
const app = express();

app.get('/sse-endpoint', (req, res) => {
  res.setHeader('Content-Type', 'text/event-stream');
  setInterval(() => {
    res.write(`data: ${new Date().toISOString()}\n\n`);
  }, 1000);
});

app.listen(3000);

使用第三方库(如 Socket.IO)

Socket.IO 封装了 WebSocket 并提供了降级兼容方案。

客户端代码

js消息实现

const socket = io('http://your-server-address');
socket.emit('chat', { text: 'Hello' });
socket.on('reply', (data) => {
  console.log('回复:', data);
});

服务端代码

const io = require('socket.io')(3000);
io.on('connection', (socket) => {
  socket.on('chat', (data) => {
    socket.emit('reply', { text: 'Received' });
  });
});

使用 HTTP 轮询(兼容旧浏览器)

通过定时请求实现简单消息拉取。

客户端代码

function pollMessages() {
  fetch('/poll-endpoint')
    .then(response => response.json())
    .then(data => {
      console.log('新消息:', data);
      setTimeout(pollMessages, 5000);
    });
}
pollMessages();

服务端代码

app.get('/poll-endpoint', (req, res) => {
  res.json({ message: 'Latest update' });
});

标签: 消息js
分享给朋友:

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

js实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js进度条实现

js进度条实现

使用HTML和CSS创建基础结构 在HTML中创建一个容器元素用于显示进度条,通常使用<div>元素。CSS用于设置进度条的样式,包括宽度、高度、颜色和圆角等属性。 <div cl…

js 实现日历

js 实现日历

实现日历的基本思路 日历的核心功能是展示日期,并允许用户进行日期选择或导航。JavaScript 可以动态生成日历的 HTML 结构,并处理用户交互逻辑。 基础日历结构 日历通常包含头部(显示月份和…

js实现复选框

js实现复选框

实现复选框的基本方法 使用HTML的<input type="checkbox">元素创建复选框,并通过JavaScript监听其状态变化。 <input type="checkb…