摘要:服務(wù)端和客戶端之間的通信前端開發(fā)經(jīng)常會(huì)依賴后端,那么如果后端服務(wù)器還沒做好推送服務(wù)器,那么前端該如何呢??梢酝ㄟ^客戶端進(jìn)行測試客戶端代碼見后面選取插件進(jìn)行開發(fā)在命令臺(tái)中輸入以下命令這種方式更簡單了。
服務(wù)端和客戶端之間的通信
前端開發(fā)經(jīng)常會(huì)依賴后端,那么如果后端服務(wù)器還沒做好推送服務(wù)器,那么前端該如何呢。
最簡單的就是自己模擬一個(gè)服務(wù)器,用node來搭建,這邊只簡單介紹搭建的過程
按照如下步驟進(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)行測試(客戶端代碼見后面)
在命令臺(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);
該插件依賴于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ù)器3 基于AMQ的demo(目前還不知道服務(wù)器如何搭建,但客戶端還是可以用的)socket.io socket.io
Welcome to socket.io
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
摘要:服務(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...
摘要:生產(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ì)做一些完全不一...
摘要:交易所在本教程的前幾部分中,我們發(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)介紹的...
摘要:服務(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...
摘要:唯一的知識點(diǎn)就是的基礎(chǔ)使用??梢院唵蔚睦斫庀旅娴拇a就構(gòu)建了一個(gè)服務(wù)器。握手完成之后的消息傳遞則在中處理。實(shí)際情況下,不可能那么多人同時(shí)說話廣播,而是說話的人少,接受廣播的人多。 硬廣一波 SF 官方首頁推薦《PHP進(jìn)階之路》(你又多久沒有投資自己了?先看后買) 我們下面則將一些實(shí)際場景都添加進(jìn)去,比如用戶身份的驗(yàn)證,游客只能瀏覽不能發(fā)言,多房間(頻道)的聊天。該博客非常適合 Java...
閱讀 3516·2021-11-15 11:38
閱讀 836·2021-11-08 13:27
閱讀 2250·2021-07-29 14:50
閱讀 2977·2019-08-29 13:06
閱讀 848·2019-08-29 11:22
閱讀 2419·2019-08-29 11:04
閱讀 3510·2019-08-28 18:23
閱讀 896·2019-08-26 13:46