您好,登錄后才能下訂單哦!
這篇文章主要講解了Nodejs怎么實現WebSocket,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
一、環境配置
1.下載安裝nodejs
2.安裝完成后打開cmd命令,執行node --version,看看是否安裝成功,如果提示沒有此命令,去配置下環境變量,正常情況下安裝后自動設置環境變量
二、配置nodejs模塊
1.安裝express模塊
模塊介紹:Express 是一個簡潔而靈活的 node.js Web應用框架, 提供了一系列強大特性幫助你創建各種 Web 應用,和豐富的 HTTP 工具。
安裝方式:在項目路徑下執行npm install express
三、HelloWord
1.創建一個目錄,作為項目目錄
2.創建一個demo.js
var express = require('express'),//讓其變為web模式 app = express(), server = require('http').createServer(app);//引入http訪問模式并綁定服務 server.listen(8000);//添加訪問端口 app.get('/', function (req, res) { res.send('Hello World');//當訪問Ip:8000時,頁面即可顯示 })
3.在項目目錄下按住shift右鍵,選擇‘在此處打開命令窗口'執行node demo.js 未報錯即啟動成功
4.在瀏覽器訪問ip:port即可輸出
四、訪問頁面
1.在項目路徑創建頁面文件夾pages,并創建html頁面a.html
2.在剛剛創建的demo.js中添加如下代碼
var express = require('express'),//讓其變為web模式 app = express(), server = require('http').createServer(app);//引入http訪問模式并綁定服務 server.listen(8000);//添加訪問端口 app.use('/', express.static(__dirname + '/pages'));//綁定頁面路徑,在pages下創建a.html頁面,可使用ip:8000/a.html訪問到 //app.use('/', express.static(__dirname + '/pages1'));//可配置多路徑,但默認會自上往下查找,找到后即返回,終止查找 app.get('/', function (req, res) { res.send('Hello World');//當訪問Ip:8000時,頁面即可顯示 })
3.重啟后訪問ip:port/a.html即可訪問到該頁面
五、引用其他js
1.在項目根目錄創建include.js,內容如下
var hello = { sayHello:function(name){ return 'hello,'+name+',this is include.js'; } } module.exports=hello;
2.在demo.js中添加
var express = require('express'),//讓其變為web模式 app = express(), include =require('./include.js'),//進入js server = require('http').createServer(app);//引入http訪問模式并綁定服務 server.listen(8000);//添加訪問端口 app.use('/', express.static(__dirname + '/pages'));//綁定頁面路徑,在pages下創建a.html頁面,可使用ip:8000/a.html訪問到. "__dirname"為項目路徑默認變量 app.get('/', function (req, res) { res.send(include.sayHello("demo")); })
六、解析請求參數
1.在demo.js中添加后請求鏈接http://ip:port/p1=p&p2=2
var express = require('express'),//讓其變為web模式 app = express(), url = require('url'), server = require('http').createServer(app);//引入http訪問模式并綁定服務 server.listen(8000);//添加訪問端口 app.use('/', express.static(__dirname + '/pages'));//綁定頁面路徑,在pages下創建a.html頁面,可使用ip:8000/a.html訪問到. "__dirname"為項目路徑默認變量 app.get('/', function (req, res) { // 解析 url 參數 var params = url.parse(req.url, true).query; res.write("網站名:" + params.p2); res.write("\n"); res.write("網站 URL:" + params.p1); res.end(); })
七、發送http請求
1.post
在demo.js中添加如下內容后訪問http://mykl:8000/parameter=2
var express = require('express'),//讓其變為web模式 app = express(), url = require('url'), util = require('util'), include =require('./include.js'), server = require('http').createServer(app);//引入http訪問模式并綁定服務 server.listen(8000);//添加訪問端口 app.use('/', express.static(__dirname + '/pages'));//綁定頁面路徑,在pages下創建a.html頁面,可使用ip:8000/a.html訪問到. "__dirname"為項目路徑默認變量 //app.use('/', express.static(__dirname + '/pages1'));//可配置多路徑,但默認會自上往下查找,找到后即返回,終止查找 app.get('/', function (req, res) { // 解析 url 參數 var params = url.parse(req.url, true).query; post('https://cang.mini-kaola.cn/pages/MobileWeb/getStorageDatil.htm',{cangId: params.cangid},function(data){ res.write(data); res.end(); }); }) function post(url,data,fn){ data=data||{}; var content=require('querystring').stringify(data);//獲得請求的參數 var parse_u=require('url').parse(url,true); var isHttp=parse_u.protocol=='http:'; var options={ host:parse_u.hostname, port:parse_u.port||(isHttp?80:443), path:parse_u.path, method:'POST', headers:{ 'Content-Type':'application/x-www-form-urlencoded', 'Content-Length':content.length } }; var req = require(isHttp?'http':'https').request(options,function(res){//發送請求 var _data=''; res.on('data', function(chunk){ _data += chunk; }); res.on('end', function(){ fn!=undefined && fn(_data); }); }); req.write(content); req.end(); }
2.get
在demo.js中添加如下內容后訪問http://mykl:8000/parameter=2
var express = require('express'),//讓其變為web模式 app = express(), http=require('http'), url = require('url'), include =require('./include.js'), server = http.createServer(app);//引入http訪問模式并綁定服務 server.listen(8000);//添加訪問端口 app.use('/', express.static(__dirname + '/pages'));//綁定頁面路徑,在pages下創建a.html頁面,可使用ip:8000/a.html訪問到. "__dirname"為項目路徑默認變量 //app.use('/', express.static(__dirname + '/pages1'));//可配置多路徑,但默認會自上往下查找,找到后即返回,終止查找 app.get('/', function (req, res) { // 解析 url 參數 var params = url.parse(req.url, true).query; //get 請求外網 http.get("http://mykl/storage/pages/MobileWeb/getStorageDatil.htm?cangId="+params.cangid,function(req1,res1){ var html=''; req1.on('data',function(data){ html+=data; }); req1.on('end',function(){ res.write(html); res.end(); }); }); })
八、socket
1.安裝socket模塊
npm install socket.io
2.進入上一步安裝的模塊路徑,找到socket.io.js
3.在page下創建一個html,并引用上面的js
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>socket</title> </head> <body> <dev id="show"/> <br/> <input type="text" id="nickname"/>昵稱<br/> <input type="text" id="inmsg"/> <input type="button" id="sendBtn" value="發送" /> <br/> </body> <script src="socket.io.js"></script> <script src="jquery-1.11.3.min.js"></script> <script> $(function(){ var socket=io.connect();//與服務器進行連接 $('#sendBtn').click(function(){ var nickname = $('#nickname').val(); var fatext = $('#inmsg').val(); if(fatext!=""){ socket.emit('famsg', nickname+"-"+new Date().toTimeString().substr(0, 8)+":"+fatext+"<br/>"); } }); socket.on('jiemsg', function(msg) { $("#show").append(msg); }); }); </script> </html>
看完上述內容,是不是對Nodejs怎么實現WebSocket有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。