豌豆Ai站群搜索引擎系统 V.25.10.25 网址:www.wd.chat

🗣 Wd提问: js创建socket服务器

🤖 Ai回答:
在 JavaScript 中创建一个 Socket 服务器,通常使用 Node.js 和 Socket.IO 或原生的 `net` 模块。以下是两种常见方式:

✅ 方法一:使用 Socket.IO(推荐)

Socket.IO 是一个流行的库,支持 WebSocket、长轮询等,兼容性好,适合实时通信。

1、安装依赖

bash
npm init -y
npm install express socket.io

2、创建服务器代码(server.js)

javascript
const express = require('express');
const http = require('http');
const socketIo = require('socket.io');

// 创建 Express 应用
const app = express();

// 创建 HTTP 服务器
const server = http.createServer(app);

// 创建 Socket.IO 实例
const io = socketIo(server);

// 监听客户端连接
io.on('connection', (socket) = {
console.log('用户已连接:', socket.id);

// 接收客户端消息
socket.on('message', (data) = {
console.log('收到消息:', data);
// 广播给所有客户端(包括自己)
io.emit('message', data);
});

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

// 静态文件服务(可选)
app.use(express.static('public'));

// 启动服务器
const PORT = 3000;
server.listen(PORT, () = {
console.log(`Socket 服务器运行在 http://localhost:${PORT}`);
});

3、创建前端页面(public/index.html)

html
<!DOCTYPE html
<html lang=zh
<head
<meta charset=UTF-8 /
<titleSocket 示例</title
<script src=https://cdn.socket.io/4.0.0/socket.io.min.js</script
</head
<body
<input type=text id=msgInput placeholder=输入消息 /
<button onclick=sendMessage()发送</button
<ul id=messages</ul

<script
const socket = io();

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

function sendMessage() {
const input = document.getElementById('msgInput');
const msg = input.value;
if (msg) {
socket.emit('message', msg);
input.value = '';
}
}
</script
</body
</html

4、运行服务器

bash
node server.js

然后打开浏览器访问:[http://localhost:3000](http://localhost:3000)

✅ 方法二:使用 Node.js 原生 `net` 模块(TCP)

如果你需要的是 TCP 级别的 socket,可以使用 `net` 模块。

示例代码(tcp-server.js)

javascript
const net = require('net');

const server = net.createServer((socket) = {
console.log('客户端连接:', socket.remoteAddress);

// 发送欢迎消息
socket.write('欢迎连接到 TCP 服务器\n');

// 接收数据
socket.on('data', (data) = {
console.log('收到:', data.toString());
socket.write(`回显: ${data.toString()}\n`);
});

// 断开连接
socket.on('end', () = {
console.log('客户端断开:', socket.remoteAddress);
});

// 错误处理
socket.on('error', (err) = {
console.error('Socket 错误:', err.message);
});
});

server.listen(8080, () = {
console.log('TCP 服务器运行在端口 8080');
});

使用 `telnet` 测试:

bash
telnet localhost 8080

总结

| 方式 | 用途 | 推荐场景 |
|
| Socket.IO | Web 实时通信(HTTP + WebSocket) | 聊天室、通知、在线游戏等 |
| net 模块 | TCP 二进制通信 | 自定义协议、设备通信等 |

✅ 如果你是做网页实时交互(如聊天),强烈推荐 Socket.IO。

需要我帮你生成完整项目结构或加入房间功能吗?

Ai作答

📣 商家广告


公司

日付VPS

取名

广告招商

月饼


0

IP地址: 52.88.30.140

搜索次数: 8

提问时间: 2025-12-28 21:41:02

🛒 域名购买

❓️ 热门提问

🌐 域名评估

最新挖掘

🖌 热门作画

🤝 关于我们

🗨 加入群聊

🔗 友情链接

🧰 站长工具
📢

温馨提示

本站所有 问答 均由Ai自动分析整理,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。

👉

技术支持

本站由 🟢 豌豆Ai 提供技术支持,使用的最新版: 豌豆Ai站群搜索引擎系统 V.25.10.25 搭建本站。

上一篇 82037 82038 82039 下一篇