亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

websocket初步認(rèn)知

lemon / 1447人閱讀

摘要:什么是是一個(gè)持久化的協(xié)議,改協(xié)議定義了一個(gè)用以在和建立一個(gè)連接。是建立在的基礎(chǔ)上,復(fù)用了的握手環(huán)節(jié),握手成功后經(jīng)過(guò)協(xié)商在走協(xié)議格式的數(shù)據(jù)。

什么是websocket

Websocket是一個(gè)持久化的協(xié)議,改協(xié)議定義了一個(gè) API 用以在browser和server建立一個(gè) socket 連接。WebSocket是建立在http的基礎(chǔ)上,復(fù)用了HTTP的握手環(huán)節(jié),握手成功后經(jīng)過(guò)協(xié)商在走Websocket協(xié)議格式的數(shù)據(jù)。

websocket應(yīng)用場(chǎng)景

websocket可以用來(lái)實(shí)現(xiàn)彈幕,協(xié)同編輯,在線社交聊天等功能。因?yàn)閣ebsocket的兼容性問(wèn)題,如下所示,只支持ie11+

所以還有其它幾種方案作為兼容性問(wèn)題的補(bǔ)充,常見(jiàn)的比如說(shuō)輪訓(xùn)方案(瀏覽器定時(shí)重復(fù)向服務(wù)器發(fā)送http請(qǐng)求,服務(wù)器相應(yīng),客戶端得到數(shù)據(jù)后,將其顯示出來(lái),不斷的重復(fù)這一過(guò)程 )、長(zhǎng)輪詢(客戶端打開(kāi)了一個(gè)到服務(wù)端的 HTTP 連接直到返回響應(yīng)數(shù)據(jù))。

websocket使用
//server
let WSServer = require("ws").Server;
let wsServer = new WSServer({ port: 8888 });
wsServer.on("connection", function (socket) {
    console.log("客戶端已經(jīng)連接");
    //監(jiān)聽(tīng)客戶端發(fā)過(guò)來(lái)的ith
    socket.on("message", function (message) {
        console.log(message);
        socket.send(" from  server:" + "hello");
    });
});
//client
 let socket = new WebSocket("ws://localhost:8888");
    socket.onopen = function () {
        socket.send("from client hello");
    }
    socket.onmessage = function (event) {
        console.log(event.data);
    }

輸出結(jié)果

說(shuō)明 上面是一個(gè)簡(jiǎn)單的示例,建立連接并發(fā)送數(shù)據(jù)。
在真實(shí)項(xiàng)目應(yīng)用中,會(huì)借助于第三方成熟的庫(kù),例如Socket.IO(包括了brower和server(node)的實(shí)現(xiàn)代碼),支持跨平臺(tái),根據(jù)瀏覽器兼容自動(dòng)從WebSocket、AJAX長(zhǎng)輪詢、Iframe流等等各種方式中選擇最佳的方式來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)實(shí)時(shí)應(yīng)用,簡(jiǎn)單使用舉例如下所示。

//server
var express = require("express");
var path = require("path");
var app = express();

app.get("/", function (req, res) {
    res.sendFile(path.resolve("index.html"));
});

var server = require("http").createServer(app);
var io = require("socket.io")(server);

io.on("connection", function (socket) {
    console.log("客戶端已經(jīng)連接");
    socket.on("message", function (msg) {
        console.log(msg);
        socket.send("sever:" + msg);
    });
});
server.listen(80);
//client

var socket = io.connect("/");
socket.on("connect",function(){
   //客戶端連接成功后發(fā)送消息"welcome"
   socket.send("welcome");
});
//客戶端收到服務(wù)器發(fā)過(guò)來(lái)的消息后觸發(fā)
socket.on("message",function(message){
   console.log(message);
});

說(shuō)明 除了上面演示中的功能外,Socket.IO還支持命名空間,房間的劃分,也支持指定范圍的廣播。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/95295.html

相關(guān)文章

  • handsontable初步認(rèn)知

    摘要:待更新左上角單元格賦值問(wèn)題,通過(guò)改源碼實(shí)現(xiàn)。下拉單元格高度修改,定位元素修改時(shí)下拉列表的最后一個(gè)顯示不全,有。 hansontable簡(jiǎn)介 是一個(gè)在線類似Excel的表格編輯器,支持豐富的展現(xiàn)和交互,有多樣的單元格類型供配置。 核心是由原生JavaScript構(gòu)建,充分模塊化,支持自定義build。 除了核心表格渲染(實(shí)質(zhì)就是js操作table,計(jì)算元素位置,自定義綁定事件處理),大部...

    mrcode 評(píng)論0 收藏0
  • handsontable初步認(rèn)知

    摘要:待更新左上角單元格賦值問(wèn)題,通過(guò)改源碼實(shí)現(xiàn)。下拉單元格高度修改,定位元素修改時(shí)下拉列表的最后一個(gè)顯示不全,有。 hansontable簡(jiǎn)介 是一個(gè)在線類似Excel的表格編輯器,支持豐富的展現(xiàn)和交互,有多樣的單元格類型供配置。 核心是由原生JavaScript構(gòu)建,充分模塊化,支持自定義build。 除了核心表格渲染(實(shí)質(zhì)就是js操作table,計(jì)算元素位置,自定義綁定事件處理),大部...

    wslongchen 評(píng)論0 收藏0
  • Notadd PHP 到 Node 版 初步體驗(yàn)與測(cè)試

    摘要:另外,團(tuán)隊(duì)更加友好的類型檢查極大方便了后端的開(kāi)發(fā)。初步的性能測(cè)試無(wú)讀寫(xiě)操作的接口響應(yīng)時(shí)間在本地,讀寫(xiě)操作接口響應(yīng)時(shí)間在,已經(jīng)遠(yuǎn)低于之前版本的。并發(fā)量預(yù)估也會(huì)有不小的提升。 2.0-alpha1 預(yù)覽版本 這個(gè)版本主要用于預(yù)覽后臺(tái),一些接口還沒(méi)對(duì)接。 Adonis.js 到 Nest.js AonisJS 是一個(gè) Node.js 版的 Laravel ,起初是打算用 AdonisJS,...

    JinB 評(píng)論0 收藏0
  • vue2.0開(kāi)發(fā)聊天程序(八) 初步完成

    摘要:主要表現(xiàn)在復(fù)雜的語(yǔ)句事務(wù)支持等。僅支持,在等瀏覽器中,會(huì)出現(xiàn)樣式布局混亂的情況。將群群對(duì)應(yīng)的聊天記錄保存在數(shù)據(jù)庫(kù)。用戶進(jìn)入群聊,則將其加入到對(duì)應(yīng)的中。文件大小不能超過(guò)通過(guò)模塊操作登錄注冊(cè)將用戶名作為唯一值。登錄支持自動(dòng)登錄,將密碼保存在中。 showImg(https://segmentfault.com/img/bV4jYr?w=402&h=710);showImg(https://...

    wmui 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<