Nodejs Socket.IO 使用范例
Nodejs Socket.IO 使用范例
看见社区里有人问Socket.IO,我就发几个自己写的小例子,是根据Socket.IO的官网写的,当然自己也多少修改了一点 https://github.com/YanYuMiao/Socket.IO 好吧,我承认这弱爆了 o(∩_∩)o
3 回复
好的,以下是关于“Node.js Socket.IO 使用范例”的帖子内容,包括简单的示例代码和解释。
Node.js Socket.IO 使用范例
看见社区里有人问Socket.IO,我就发几个自己写的小例子,是根据Socket.IO的官网写的,当然自己也多少修改了一点。
Socket.IO 示例代码
好吧,我承认这弱爆了 o(∩_∩)o
示例一:基本的聊天室
服务端代码 (server.js)
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('A user connected:', socket.id);
socket.on('chat message', (msg) => {
console.log('message:', msg);
io.emit('chat message', msg); // 广播给所有连接的客户端
});
socket.on('disconnect', () => {
console.log('User disconnected:', socket.id);
});
});
server.listen(3000, () => {
console.log('Server listening on port 3000');
});
客户端代码 (client.html)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Socket.IO Chat</title>
<script src="/socket.io/socket.io.js"></script>
<script>
const socket = io();
document.addEventListener('DOMContentLoaded', () => {
const form = document.querySelector('form');
const input = document.querySelector('#input');
const messages = document.querySelector('#messages');
form.addEventListener('submit', (e) => {
e.preventDefault();
if (input.value) {
socket.emit('chat message', input.value);
input.value = '';
}
});
socket.on('chat message', (msg) => {
const item = document.createElement('li');
item.textContent = msg;
messages.appendChild(item);
window.scrollTo(0, document.body.scrollHeight);
});
});
</script>
</head>
<body>
<ul id="messages"></ul>
<form action="">
<input id="input" autocomplete="off" /><button>Send</button>
</form>
</body>
</html>
解释
-
服务端 (
server.js
):- 创建一个Express应用,并使用HTTP服务器。
- 使用Socket.IO模块创建一个WebSocket服务器。
- 监听客户端的连接事件,每当有新用户连接时,打印连接信息。
- 当接收到
chat message
事件时,将消息广播给所有连接的客户端。 - 当客户端断开连接时,打印断开信息。
-
客户端 (
client.html
):- 引入Socket.IO客户端库。
- 监听表单提交事件,当用户输入消息并提交时,通过Socket.IO发送消息到服务器。
- 接收来自服务器的消息,并将其显示在页面上。
以上就是使用Socket.IO创建一个简单的聊天室的基本步骤。你可以通过访问http://localhost:3000
来测试这个聊天室功能。希望这个例子对你有所帮助!
楼主,我要用于express4.x里面,按照官方的总是报错,求指导。能不能写个例子参考下。