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

資訊專欄INFORMATION COLUMN

websock(AMQ)通信-前端

levius / 3001人閱讀

摘要:服務(wù)端和客戶端之間的通信前端開(kāi)發(fā)經(jīng)常會(huì)依賴后端,那么如果后端服務(wù)器還沒(méi)做好推送服務(wù)器,那么前端該如何呢??梢酝ㄟ^(guò)客戶端進(jìn)行測(cè)試客戶端代碼見(jiàn)后面選取插件進(jìn)行開(kāi)發(fā)在命令臺(tái)中輸入以下命令這種方式更簡(jiǎn)單了。

服務(wù)端和客戶端之間的通信

前端開(kāi)發(fā)經(jīng)常會(huì)依賴后端,那么如果后端服務(wù)器還沒(méi)做好推送服務(wù)器,那么前端該如何呢。
最簡(jiǎn)單的就是自己模擬一個(gè)服務(wù)器,用node來(lái)搭建,這邊只簡(jiǎn)單介紹搭建的過(guò)程

node搭建服務(wù)器
1.選取websocket插件進(jìn)行開(kāi)發(fā)

按照如下步驟進(jìn)行開(kāi)發(fā)
在命令臺(tái)中輸入以下命令

npm init -y 
npm i websocket -S

安裝完websocket插件后就可以搭建服務(wù)器了,首先新建一個(gè)app.js,并且代碼如下

var webSocketsServerPort = 3002
var webSocketServer = require("websocket").server
var http = require("http")

var server = http.createServer(function(req, res) {

})
server.listen(webSocketsServerPort, function() {
    console.log((new Date()) + "Server is listening on port " + webSocketsServerPort)
})

/**
 * websock server
 */
var wsServer = new webSocketServer({
    httpServer: server
})

wsServer.on("request", function(request) {
    var connection = request.accept(null, request.origin); 
    connection.on("message", function(message) {
        console.log("message");
    });

    connection.on("close", function(connection) {
        console.log("close");
    });

})

這樣一個(gè)簡(jiǎn)易的服務(wù)器已經(jīng)搭建完成??梢酝ㄟ^(guò)客戶端進(jìn)行測(cè)試(客戶端代碼見(jiàn)后面)

2.選取faye-websocket插件進(jìn)行開(kāi)發(fā)

在命令臺(tái)中輸入以下命令

npm init -y 
npm i faye-websocket-S

這種方式更簡(jiǎn)單了。代碼如下

var WebSocket = require("faye-websocket"),
    http      = require("http");

var server = http.createServer();

server.on("upgrade", function(request, socket, body) {
  if (WebSocket.isWebSocket(request)) {
    var ws = new WebSocket(request, socket, body);

    ws.on("message", function(event) {
      ws.send(event.data);
    });

    ws.on("close", function(event) {
      console.log("close", event.code, event.reason);
      ws = null;
    });
  }
});

server.listen(3002);
3.選取socket.io插件進(jìn)行開(kāi)發(fā)

該插件依賴于express
命令如下

express -e node-js-socketio // express模板安裝
npm i // 安裝express插件
npm i socket.io -S // 安裝socket.io

app.js文件改成如下代碼

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

server.listen(3002);

app.get("/", function (req, res) {
  res.sendfile(__dirname + "/client/index.html");
});

io.sockets.on("connection", function (socket) {
  socket.emit("news", { hello: "world" });
  socket.on("my other event", function (data) {
    console.log(data);
  });
});

至此 服務(wù)器搭建已經(jīng)完成(還有一種是基于stomp.js,目前還沒(méi)弄清楚node如何搭建,等知道后在補(bǔ)充)

客戶端(即瀏覽器)調(diào)用服務(wù)器
1.簡(jiǎn)單的demo如下



    
2.基于express的socket.io的demo如下



socket.io


socket.io

Welcome to socket.io

3 基于AMQ的demo(目前還不知道服務(wù)器如何搭建,但客戶端還是可以用的)

demo里放了3種模式,主要就是Queue和topic,消費(fèi)和發(fā)布
Queue和topic的區(qū)別是一對(duì)多和多對(duì)多(QUEUE發(fā)送一個(gè)人消息之后,就消失了,而topic可以發(fā)送多個(gè)人)




    
    Document



    
    

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

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

相關(guān)文章

  • websock(AMQ)通信-前端

    摘要:服務(wù)端和客戶端之間的通信前端開(kāi)發(fā)經(jīng)常會(huì)依賴后端,那么如果后端服務(wù)器還沒(méi)做好推送服務(wù)器,那么前端該如何呢。可以通過(guò)客戶端進(jìn)行測(cè)試客戶端代碼見(jiàn)后面選取插件進(jìn)行開(kāi)發(fā)在命令臺(tái)中輸入以下命令這種方式更簡(jiǎn)單了。 服務(wù)端和客戶端之間的通信 前端開(kāi)發(fā)經(jīng)常會(huì)依賴后端,那么如果后端服務(wù)器還沒(méi)做好推送服務(wù)器,那么前端該如何呢。最簡(jiǎn)單的就是自己模擬一個(gè)服務(wù)器,用node來(lái)搭建,這邊只簡(jiǎn)單介紹搭建的過(guò)程 nod...

    ARGUS 評(píng)論0 收藏0
  • [譯] RabbitMQ tutorials (3) ---- 'Pub/Sub'

    摘要:生產(chǎn)者只能把消息發(fā)到交換器。是否要追加到一個(gè)特殊的隊(duì)列是否要追加到許多的隊(duì)列或者丟掉這條消息這些規(guī)則被定義為交換類型。有一點(diǎn)很關(guān)鍵,向不存在的交換器發(fā)布消息是被禁止的。如果仍然沒(méi)有隊(duì)列綁定交換器,消息會(huì)丟失。 發(fā)布與訂閱 (Publish/Subscribe) 在之前的章節(jié)中,我們創(chuàng)建了工作隊(duì)列,之前的工作隊(duì)列的假設(shè)是每個(gè)任務(wù)只被分發(fā)到一個(gè)worker。在這一節(jié)中,我們會(huì)做一些完全不一...

    zzir 評(píng)論0 收藏0
  • rabbitmq中文教程python版 - 發(fā)布 / 訂閱

    摘要:交易所在本教程的前幾部分中,我們發(fā)送消息并從隊(duì)列中接收消息。消費(fèi)者是接收消息的用戶的應(yīng)用程序。中的消息傳遞模型的核心思想是生產(chǎn)者永遠(yuǎn)不會(huì)將任何消息直接發(fā)送到隊(duì)列中。交換和隊(duì)列之間的關(guān)系稱為綁定。 源碼:https://github.com/ltoddy/rabbitmq-tutorial 發(fā)布 / 訂閱 (using the Pika Python client) 本章節(jié)教程重點(diǎn)介紹的...

    alphahans 評(píng)論0 收藏0
  • WebSocket就這么回事兒

    摘要:服務(wù)端確認(rèn)協(xié)議版本,升級(jí)為協(xié)議。自己寫了一個(gè)例子,服務(wù)端在開(kāi)始連接后,利用定時(shí)器主動(dòng)向客戶端發(fā)送隨機(jī)數(shù),客戶端也可以發(fā)給服務(wù)器消息,然后服務(wù)器返回這條消息給客戶端。做的事情就是給頁(yè)面的元素綁定事件。 寫在前面webSocket是一項(xiàng)可以讓服務(wù)器將數(shù)據(jù)主動(dòng)推送給客戶端的技術(shù)。前幾天寫了一個(gè)日志功能,日志數(shù)據(jù)需要實(shí)時(shí)更新。正好項(xiàng)目中有封裝好的WebSocket組件,且接口支持webSock...

    ruicbAndroid 評(píng)論0 收藏0
  • PHP 程序員也能做的 Java 開(kāi)發(fā) 30分鐘使用 netty 輕松打造一個(gè)高性能 websock

    摘要:唯一的知識(shí)點(diǎn)就是的基礎(chǔ)使用。可以簡(jiǎn)單的理解下面的代碼就構(gòu)建了一個(gè)服務(wù)器。握手完成之后的消息傳遞則在中處理。實(shí)際情況下,不可能那么多人同時(shí)說(shuō)話廣播,而是說(shuō)話的人少,接受廣播的人多。 硬廣一波 SF 官方首頁(yè)推薦《PHP進(jìn)階之路》(你又多久沒(méi)有投資自己了?先看后買) 我們下面則將一些實(shí)際場(chǎng)景都添加進(jìn)去,比如用戶身份的驗(yàn)證,游客只能瀏覽不能發(fā)言,多房間(頻道)的聊天。該博客非常適合 Java...

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

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

0條評(píng)論

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