成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

websock(AMQ)通信-前端

ARGUS / 2323人閱讀

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

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

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

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

按照如下步驟進(jìn)行開發(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è)簡易的服務(wù)器已經(jīng)搭建完成??梢酝ㄟ^客戶端進(jìn)行測試(客戶端代碼見后面)

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

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

npm init -y 
npm i faye-websocket-S

這種方式更簡單了。代碼如下

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)行開發(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,目前還沒弄清楚node如何搭建,等知道后在補(bǔ)充)

客戶端(即瀏覽器)調(diào)用服務(wù)器
1.簡單的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ū)別是一對多和多對多(QUEUE發(fā)送一個(gè)人消息之后,就消失了,而topic可以發(fā)送多個(gè)人)




    
    Document



    
    

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/52505.html

相關(guān)文章

  • websock(AMQ)通信-前端

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

    levius 評論0 收藏0
  • [譯] RabbitMQ tutorials (3) ---- 'Pub/Sub'

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

    zzir 評論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 評論0 收藏0
  • WebSocket就這么回事兒

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

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

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

    kviccn 評論0 收藏0

發(fā)表評論

0條評論

ARGUS

|高級講師

TA的文章

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