- 这种方式本质没有使用HTTP响应头,因此也没有跨域的限制
- 前端部分:
<script> let socket = new WebSocket("ws://localhost:8080"); socket.onopen = function() { socket.send("秋风的笔记"); }; socket.onmessage = function(e) { console.log(e.data); }; </script>
- 后端部分:
const WebSocket = require("ws"); const server = new WebSocket.Server({ port: 8080 }); server.on("connection", function(socket) { socket.on("message", function(data) { socket.send(data); }); });
使用socket.io
- 客户端处理
<script src="./socket.io.js"></script> <script> let socket = io('http://www.zhufengpeixun.com/'); // => 连接成功处理 socket.on('connect', function(){ // => 监听服务端消息 socket.on('message', function(msg) { console.log('data from server' + msg); // => 监听服务器关闭 socket.on('disconnect', function() { console.log('server socket has closed'); }); }); // => 发送消息给服务器端 socket.send("zhufeng"); </script>
- 服务器端处理
// => 监听socket连接:server是服务器创建的服务 socket.listen(server).on('connection', function(client) { // => 接受信息 client.on('message', function(msg) { client.send(msg + '@@'); }); // => 断开处理 client.on('disconnect', function() { console.log('client socket has closed!'); }); });