Nodejs怎么實(shí)現(xiàn)WebSocket
這篇文章主要講解了Nodejs怎么實(shí)現(xiàn)WebSocket,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。
成都創(chuàng)新互聯(lián)公司是專(zhuān)業(yè)的會(huì)澤網(wǎng)站建設(shè)公司,會(huì)澤接單;提供成都做網(wǎng)站、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行會(huì)澤網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
一、環(huán)境配置
1.下載安裝nodejs
2.安裝完成后打開(kāi)cmd命令,執(zhí)行node --version,看看是否安裝成功,如果提示沒(méi)有此命令,去配置下環(huán)境變量,正常情況下安裝后自動(dòng)設(shè)置環(huán)境變量
二、配置nodejs模塊
1.安裝express模塊
模塊介紹:Express 是一個(gè)簡(jiǎn)潔而靈活的 node.js Web應(yīng)用框架, 提供了一系列強(qiáng)大特性幫助你創(chuàng)建各種 Web 應(yīng)用,和豐富的 HTTP 工具。
安裝方式:在項(xiàng)目路徑下執(zhí)行npm install express
三、HelloWord
1.創(chuàng)建一個(gè)目錄,作為項(xiàng)目目錄
2.創(chuàng)建一個(gè)demo.js
var express = require('express'),//讓其變?yōu)閣eb模式 app = express(), server = require('http').createServer(app);//引入http訪問(wèn)模式并綁定服務(wù) server.listen(8000);//添加訪問(wèn)端口 app.get('/', function (req, res) { res.send('Hello World');//當(dāng)訪問(wèn)Ip:8000時(shí),頁(yè)面即可顯示 })
3.在項(xiàng)目目錄下按住shift右鍵,選擇‘在此處打開(kāi)命令窗口'執(zhí)行node demo.js 未報(bào)錯(cuò)即啟動(dòng)成功
4.在瀏覽器訪問(wèn)ip:port即可輸出
四、訪問(wèn)頁(yè)面
1.在項(xiàng)目路徑創(chuàng)建頁(yè)面文件夾pages,并創(chuàng)建html頁(yè)面a.html
2.在剛剛創(chuàng)建的demo.js中添加如下代碼
var express = require('express'),//讓其變?yōu)閣eb模式 app = express(), server = require('http').createServer(app);//引入http訪問(wèn)模式并綁定服務(wù) server.listen(8000);//添加訪問(wèn)端口 app.use('/', express.static(__dirname + '/pages'));//綁定頁(yè)面路徑,在pages下創(chuàng)建a.html頁(yè)面,可使用ip:8000/a.html訪問(wèn)到 //app.use('/', express.static(__dirname + '/pages1'));//可配置多路徑,但默認(rèn)會(huì)自上往下查找,找到后即返回,終止查找 app.get('/', function (req, res) { res.send('Hello World');//當(dāng)訪問(wèn)Ip:8000時(shí),頁(yè)面即可顯示 })
3.重啟后訪問(wèn)ip:port/a.html即可訪問(wèn)到該頁(yè)面
五、引用其他js
1.在項(xiàng)目根目錄創(chuàng)建include.js,內(nèi)容如下
var hello = { sayHello:function(name){ return 'hello,'+name+',this is include.js'; } } module.exports=hello;
2.在demo.js中添加
var express = require('express'),//讓其變?yōu)閣eb模式 app = express(), include =require('./include.js'),//進(jìn)入js server = require('http').createServer(app);//引入http訪問(wèn)模式并綁定服務(wù) server.listen(8000);//添加訪問(wèn)端口 app.use('/', express.static(__dirname + '/pages'));//綁定頁(yè)面路徑,在pages下創(chuàng)建a.html頁(yè)面,可使用ip:8000/a.html訪問(wèn)到. "__dirname"為項(xiàng)目路徑默認(rèn)變量 app.get('/', function (req, res) { res.send(include.sayHello("demo")); })
六、解析請(qǐng)求參數(shù)
1.在demo.js中添加后請(qǐng)求鏈接http://ip:port/p1=p&p2=2
var express = require('express'),//讓其變?yōu)閣eb模式 app = express(), url = require('url'), server = require('http').createServer(app);//引入http訪問(wèn)模式并綁定服務(wù) server.listen(8000);//添加訪問(wèn)端口 app.use('/', express.static(__dirname + '/pages'));//綁定頁(yè)面路徑,在pages下創(chuàng)建a.html頁(yè)面,可使用ip:8000/a.html訪問(wèn)到. "__dirname"為項(xiàng)目路徑默認(rèn)變量 app.get('/', function (req, res) { // 解析 url 參數(shù) var params = url.parse(req.url, true).query; res.write("網(wǎng)站名:" + params.p2); res.write("\n"); res.write("網(wǎng)站 URL:" + params.p1); res.end(); })
七、發(fā)送http請(qǐng)求
1.post
在demo.js中添加如下內(nèi)容后訪問(wèn)http://mykl:8000/parameter=2
var express = require('express'),//讓其變?yōu)閣eb模式 app = express(), url = require('url'), util = require('util'), include =require('./include.js'), server = require('http').createServer(app);//引入http訪問(wèn)模式并綁定服務(wù) server.listen(8000);//添加訪問(wèn)端口 app.use('/', express.static(__dirname + '/pages'));//綁定頁(yè)面路徑,在pages下創(chuàng)建a.html頁(yè)面,可使用ip:8000/a.html訪問(wèn)到. "__dirname"為項(xiàng)目路徑默認(rèn)變量 //app.use('/', express.static(__dirname + '/pages1'));//可配置多路徑,但默認(rèn)會(huì)自上往下查找,找到后即返回,終止查找 app.get('/', function (req, res) { // 解析 url 參數(shù) 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);//獲得請(qǐng)求的參數(shù) 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){//發(fā)送請(qǐng)求 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中添加如下內(nèi)容后訪問(wèn)http://mykl:8000/parameter=2
var express = require('express'),//讓其變?yōu)閣eb模式 app = express(), http=require('http'), url = require('url'), include =require('./include.js'), server = http.createServer(app);//引入http訪問(wèn)模式并綁定服務(wù) server.listen(8000);//添加訪問(wèn)端口 app.use('/', express.static(__dirname + '/pages'));//綁定頁(yè)面路徑,在pages下創(chuàng)建a.html頁(yè)面,可使用ip:8000/a.html訪問(wèn)到. "__dirname"為項(xiàng)目路徑默認(rèn)變量 //app.use('/', express.static(__dirname + '/pages1'));//可配置多路徑,但默認(rèn)會(huì)自上往下查找,找到后即返回,終止查找 app.get('/', function (req, res) { // 解析 url 參數(shù) var params = url.parse(req.url, true).query; //get 請(qǐng)求外網(wǎng) 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.進(jìn)入上一步安裝的模塊路徑,找到socket.io.js
3.在page下創(chuàng)建一個(gè)html,并引用上面的js
socket
昵稱(chēng)
看完上述內(nèi)容,是不是對(duì)Nodejs怎么實(shí)現(xiàn)WebSocket有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
名稱(chēng)欄目:Nodejs怎么實(shí)現(xiàn)WebSocket
文章轉(zhuǎn)載:http://www.xueling.net.cn/article/jsceeh.html