国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

websocket初步認知

lemon / 1400人閱讀

摘要:什么是是一個持久化的協議,改協議定義了一個用以在和建立一個連接。是建立在的基礎上,復用了的握手環節,握手成功后經過協商在走協議格式的數據。

什么是websocket

Websocket是一個持久化的協議,改協議定義了一個 API 用以在browser和server建立一個 socket 連接。WebSocket是建立在http的基礎上,復用了HTTP的握手環節,握手成功后經過協商在走Websocket協議格式的數據。

websocket應用場景

websocket可以用來實現彈幕,協同編輯,在線社交聊天等功能。因為websocket的兼容性問題,如下所示,只支持ie11+

所以還有其它幾種方案作為兼容性問題的補充,常見的比如說輪訓方案(瀏覽器定時重復向服務器發送http請求,服務器相應,客戶端得到數據后,將其顯示出來,不斷的重復這一過程 )、長輪詢(客戶端打開了一個到服務端的 HTTP 連接直到返回響應數據)。

websocket使用
//server
let WSServer = require("ws").Server;
let wsServer = new WSServer({ port: 8888 });
wsServer.on("connection", function (socket) {
    console.log("客戶端已經連接");
    //監聽客戶端發過來的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);
    }

輸出結果

說明 上面是一個簡單的示例,建立連接并發送數據。
在真實項目應用中,會借助于第三方成熟的庫,例如Socket.IO(包括了brower和server(node)的實現代碼),支持跨平臺,根據瀏覽器兼容自動從WebSocket、AJAX長輪詢、Iframe流等等各種方式中選擇最佳的方式來實現網絡實時應用,簡單使用舉例如下所示。

//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("客戶端已經連接");
    socket.on("message", function (msg) {
        console.log(msg);
        socket.send("sever:" + msg);
    });
});
server.listen(80);
//client

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

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/95295.html

相關文章

  • handsontable初步認知

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

    mrcode 評論0 收藏0
  • handsontable初步認知

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

    wslongchen 評論0 收藏0
  • Notadd PHP 到 Node 版 初步體驗與測試

    摘要:另外,團隊更加友好的類型檢查極大方便了后端的開發。初步的性能測試無讀寫操作的接口響應時間在本地,讀寫操作接口響應時間在,已經遠低于之前版本的。并發量預估也會有不小的提升。 2.0-alpha1 預覽版本 這個版本主要用于預覽后臺,一些接口還沒對接。 Adonis.js 到 Nest.js AonisJS 是一個 Node.js 版的 Laravel ,起初是打算用 AdonisJS,...

    JinB 評論0 收藏0
  • vue2.0開發聊天程序(八) 初步完成

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

    wmui 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<