WebAPI

MDN.WebSocket官方传送门:https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket
作用:WebSocket 对象提供了用于创建和管理 WebSocket 连接,以及可以通过该连接发送和接收数据的 API。
使用前先需要new一个构造函数,使用 WebSocket() 构造函数来构造一个 WebSocket。

var aWebSocket = new WebSocket(url [, protocols]);

示例

<body>
    <button id="connect">连接服务端</button>
    <button id="send" disabled="true">发送数据给服务端</button>
    <span id="recv"></span>
    <script>
        var connect=document.querySelector('#connect')
        var send=document.querySelector('#send')
        var recv=document.querySelector('#recv')
        let socket=null 
        connect.onclick=function(){
            socket = new WebSocket('ws://localhost:9998');
            socket.onopen = function(event) {
                send.disabled=false
                console.log("连接服务器成功了");
            };
            socket.onclose = function(event) {
                console.log("连接服务器失败");
                send.disabled=true
            };
            socket.onmessage=function(even){
                console.log("服务端>客户端" )
                console.log(even)
                recv.innerHTML=even.data
            }
        }
        send.onclick=function(){
            socket.send("hello serve")
        }
    </script>
</body>

当然你也可以使用事件监听的方式来监听例如连接成功时、连接失败时、收到数据时、连接关闭时等等
示例

// Create WebSocket connection.
const socket = new WebSocket('ws://localhost:8080');

// Connection opened
socket.addEventListener('open', function (event) {
    socket.send('Hello Server!');
});

// Listen for messages
socket.addEventListener('message', function (event) {
    console.log('Message from server ', event.data);
});

Node使用的ws包

GitHub传送门:https://github.com/websockets/ws
因为这些开发者是外国人,说的英语我也看不懂,只能用翻译加上自己的理解整理一下子了。
这个作者先吹嘘了自己的这个库有多么多么简单,而且速度还非常的块。然后作者说这个是放在服务器上(Node)上使用的,你要是放在浏览器前端他是不起作用的,也就是他这个库在WebSock中扮演客户端的角色然后你的前端想要去交互要用WebAPI的WebSocket,最后作者插了一句你要是想用相同的代码在node与浏览器无缝运行那么你要用其他的转换代码的包,例如:isomorphic-ws
作者写的文档虽然不是很多但是我也不会闲的蛋疼都抄下来。我在这里只会放几个基础案例,要是想要知道全部用法,请打开GitHub的传送门自己去看。

const WebSocket=require("ws")
const wss= new WebSocket.Server({
    port:9998
})
wss.on('connection',client=>{
    console.log("连接成功。。。。")
    // 客户端发给服务器的数据
    client.on('message',msg=>{
         console.log('我是服务器我收到了前端传输的数据'+msg)
         client.send("hello 客户端")//从后端发给前端的一条数据
    })

})