在前后端分离的架构中,后台(通常是服务器端)有时需要调用前台(客户端,通常是浏览器)的JavaScript代码。这种情况并不常见,因为前后端分离的设计初衷是将逻辑和表现层分开,但某些特定场景下,这种交互可能是必要的。
服务器端(Node.js):
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', ws => {
ws.on('message', message => {
console.log(`Received message => ${message}`);
});
ws.send('Hello! Message From Server!!');
});
客户端(HTML + JavaScript):
<!DOCTYPE html>
<html>
<head>
<title>WebSocket Example</title>
</head>
<body>
<script>
const socket = new WebSocket('ws://localhost:8080');
socket.onopen = () => {
console.log('Connected to server');
socket.send('Hello Server!');
};
socket.onmessage = event => {
console.log(`Received message from server: ${event.data}`);
};
socket.onerror = error => {
console.error(`WebSocket error: ${error}`);
};
socket.onclose = () => {
console.log('Disconnected from server');
};
</script>
</body>
</html>
通过这种方式,服务器可以主动向客户端推送数据,实现前后端的实时交互。
领取专属 10元无门槛券
手把手带您无忧上云