当前位置:首页 > 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 适用于单向服务器推送场景,兼容性良好。

客户端代码

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 并提供了降级兼容方案。

客户端代码

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();

服务端代码

js消息实现

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

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

相关文章

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

php实现推送消息推送消息

php实现推送消息推送消息

PHP 实现消息推送的方法 使用 WebSocket 实现实时推送 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,适合实现实时消息推送。 安装 Ratchet 库(WebSo…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…