首页 > web前端 > js教程 > 正文

JavaScript Socket.IO实时通信

狼影
发布: 2025-10-21 15:24:01
原创
233人浏览过
Socket.IO基于WebSocket实现客户端与服务器的实时双向通信,具备自动重连、断线恢复等特性,适用于聊天应用、实时通知等场景;其由服务器端(Node.js环境)和客户端组成,使用一致的API结构;通过Express搭建服务器并监听connection事件处理连接、消息收发与断开;前端引入socket.io-client库,调用io()连接服务器,并用emit发送消息、on接收消息;支持emit、broadcast、rooms等通信方式,需注意CORS配置、反向代理部署及连接状态管理以避免内存泄漏。

javascript socket.io实时通信

JavaScript中的Socket.IO是一个强大的库,用于实现客户端与服务器之间的实时双向通信。它基于WebSocket,但具备更好的兼容性和自动重连、断线恢复等特性,适合开发聊天应用、实时通知、协作工具等需要即时交互的功能。

Socket.IO基本组成

Socket.IO分为两部分:服务器端和客户端。

  • 服务器端:运行在Node.js环境中,通常集成在Express等Web框架中。
  • 客户端:通过浏览器引入socket.io-client,与服务器建立连接并收发消息。

两者使用相同的API结构,便于理解和维护。

搭建Socket.IO服务器

先安装依赖:

立即学习Java免费学习笔记(深入)”;

npm install express socket.io

创建一个简单的服务器:

ViiTor实时翻译
ViiTor实时翻译

AI实时多语言翻译专家!强大的语音识别、AR翻译功能。

ViiTor实时翻译 116
查看详情 ViiTor实时翻译
const express = require('express');
const http = require('http');
const socketIo = require('socket.io');

const app = express();
const server = http.createServer(app);
const io = socketIo(server);

io.on('connection', (socket) => {
  console.log('用户已连接');

  socket.on('message', (data) => {
    io.emit('message', data); // 广播给所有客户端
  });

  socket.on('disconnect', () => {
    console.log('用户断开连接');
  });
});

server.listen(3000, () => {
  console.log('服务器运行在 http://localhost:3000');
});

前端连接与通信

在HTML页面中引入客户端库并连接:

<script src="/socket.io/socket.io.js"></script>
<script>
  const socket = io('http://localhost:3000');

  // 发送消息
  function sendMessage() {
    const input = document.getElementById('msg');
    socket.emit('message', input.value);
    input.value = '';
  }

  // 接收消息
  socket.on('message', (data) => {
    const messages = document.getElementById('messages');
    const li = document.createElement('li');
    li.textContent = data;
    messages.appendChild(li);
  });
</script>

常用功能与注意事项

Socket.IO支持多种通信方式:

  • emit:发送事件,可携带数据。
  • broadcast:向除自己外的所有人发送(socket.broadcast.emit)。
  • rooms:加入房间实现群组通信,如聊天室或游戏房间。

注意点:

  • 确保CORS配置正确,避免跨域问题。
  • 生产环境建议使用反向代理(如Nginx)处理WebSocket连接。
  • 合理管理连接状态,避免内存泄漏。

基本上就这些。掌握基础用法后,可以扩展出丰富的实时交互功能。

以上就是JavaScript Socket.IO实时通信的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号