日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

WebSocket是一種雙向、單套接字連接,使用WebSocket,那么請求就變成了打開WebSocket連接的單一請求,并且可以重用公客戶端到服務器以及服務器到客戶端的同一連接。

WebSock減少延遲,一旦建立起WebSocket連接,服務器可以在消息可用的時候發送。這是輪詢和WebSocket的比較。

WebSocket基本使用方法

WebSocket讓實時通信更加有效,可以節約帶寬、CPU資源并減少延遲。

WebSocket連接通過在客戶端和服務端之間第一次握手的時候將http協議升級到WebSocket協議來完成,這個過程在相同的底層TCP連接上進行。

創建WebSocket連接

首先調用WebSocket構造函數,創建一個WebSocket連接,構造函數返回的WebSocket對象實例。

建立客戶端的WebSocket連接

使用WebSocket接口,通過指向一個表示所要連接端點的URL,實例化一個WebSocket對象。

WebSocket協議定義了兩種URL:ws和wss。和HTTP、HTTPS類似,表示非加密和加密數據。wss表示使用傳輸層安全性的WebSocket連接。

WebSocket構造函數有一個必填的URL和可選參數protocols,URL是指向連接目標的URL;protocols是為了建立連接,服務器必須在它響應中包含一個或者一組協議名稱,比如:

    <script>
        let ws = new WebSocket("ws://localhost:3000/",['com.kaazing.echo']);
        ws.onopen = () => {
            ws.send("hello")
        }
        ws.onmessage =(ev) => {
            console.log("ev", ev)
        }
        
    </script>

和所有的Web API事件一樣,使用on+事件名稱來處理屬性監聽這些事件。WebSocket對象調度4個不同的事件:

  1. open,當服務器響應了WebSocket連接請求,那么open事件觸發并且建立一個連接,open事件對應的回調函數就是onopen。
  2. message,在接收到消息時候觸發,對應事件的回調函數是onmessage,
  3. error,在響應意外故障的時候觸發,對應的回調函數是onerror。錯誤還會導致WebSocket連接關閉。
  4. close,在WebSocket連接關閉的時候觸發,對應的回調函數是onclose。一旦連接關閉,那么客戶端或者服務器就不再能接收或者發送信息。

創建服務端的WebSocket

代碼如下:

const express = require("express");
const http = require("http");
const Ws = require("ws").Server;
const App = express();

const server = http.createServer(app);

server.listen(3000);
app.use(express.static('www'));

let wsServer = new Ws({server});

wsServer.on("connection",function(socket){
    console.log("連接成功");
    socket.on("message",msg=>{
        console.log("客戶端信息",msg)
        socket.send("客戶端發送的信息:"+msg+","+new Date().getTime())
    })
})

index.html代碼:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <p id="mes"></p>

    <script>
        let pText = document.querySelector("p")
        let ws = new WebSocket("ws://localhost:3000/", ['com.kaazing.echo']);
        ws.onopen = (e) => {
            console.log("WebSocket open", e);
            setInterval(() => {
                ws.send(new Date().getTime())
            }, 2000)
        }
        ws.onmessage = ({ data }) => {
            pText.innerText = data;
        }

    </script>
</body>

</html>

然后執行命令:node ws.js,在瀏覽器打開上面創建的頁面,效果如下:

WebSocket基本使用方法

 

分享到:
標簽:WebSocket
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定