websocket 结合 mysql 代码案例
时间: 2023-11-21 17:07:29 浏览: 28
以下是一个简单的代码示例,展示如何使用WebSocket与MySQL进行交互:
server.js
```javascript
const WebSocket = require('ws');
const mysql = require('mysql');
const dbConnection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydatabase'
});
dbConnection.connect();
const server = new WebSocket.Server({ port: 8080 });
server.on('connection', (socket) => {
console.log('Client connected.');
socket.on('message', (message) => {
console.log(`Received message: ${message}`);
const query = `SELECT * FROM mytable WHERE id = ${message}`;
dbConnection.query(query, (error, results, fields) => {
if (error) {
socket.send(JSON.stringify({ error: error }));
} else {
socket.send(JSON.stringify({ data: results }));
}
});
});
socket.on('close', () => {
console.log('Client disconnected.');
});
});
```
client.html
```html
<!DOCTYPE html>
<html>
<head>
<title>WebSocket and MySQL Demo</title>
</head>
<body>
<h1>WebSocket and MySQL Demo</h1>
<label for="id-input">Enter ID:</label>
<input id="id-input" type="text">
<button id="query-button">Query</button>
<p id="result"></p>
<script>
const socket = new WebSocket('ws://localhost:8080');
socket.addEventListener('open', (event) => {
console.log('Connected to server.');
});
document.getElementById('query-button').addEventListener('click', () => {
const id = document.getElementById('id-input').value;
socket.send(id);
});
socket.addEventListener('message', (event) => {
const data = JSON.parse(event.data);
if (data.error) {
document.getElementById('result').innerHTML = `Error: ${data.error}`;
} else {
document.getElementById('result').innerHTML = JSON.stringify(data.data);
}
});
socket.addEventListener('close', (event) => {
console.log('Disconnected from server.');
});
</script>
</body>
</html>
```
当客户端连接到服务器时,它会显示一个输入框和一个按钮。当用户点击按钮时,它会发送一个包含所输入ID的WebSocket消息。服务器会将该消息用作查询条件,从MySQL数据库中检索数据,并将结果作为JSON消息发送回客户端。客户端显示结果或错误消息。