最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nodejs實(shí)現(xiàn)WebSocket代碼實(shí)例

 更新時(shí)間:2020年05月19日 15:57:07   作者:RollBack2010  
這篇文章主要介紹了Nodejs實(shí)現(xiàn)WebSocket代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一、環(huán)境配置

  1.下載安裝nodejs https://nodejs.org/en/download/

  2.安裝完成后打開cmd命令,執(zhí)行node --version,看看是否安裝成功,如果提示沒有此命令,去配置下環(huán)境變量,正常情況下安裝后自動(dòng)設(shè)置環(huán)境變量

二、配置nodejs模塊

  1.安裝express模塊

    模塊介紹:Express 是一個(gè)簡潔而靈活的 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ù)
  server.listen(8000);//添加訪問端口
  app.get('/', function (req, res) {
   res.send('Hello World');//當(dāng)訪問Ip:8000時(shí),頁面即可顯示
})

  3.在項(xiàng)目目錄下按住shift右鍵,選擇‘在此處打開命令窗口'執(zhí)行node demo.js 未報(bào)錯(cuò)即啟動(dòng)成功

4.在瀏覽器訪問ip:port即可輸出

四、訪問頁面

  1.在項(xiàng)目路徑創(chuàng)建頁面文件夾pages,并創(chuàng)建html頁面a.html

2.在剛剛創(chuàng)建的demo.js中添加如下代碼

var express = require('express'),//讓其變?yōu)閣eb模式
  app = express(),
     server = require('http').createServer(app);//引入http訪問模式并綁定服務(wù)
     server.listen(8000);//添加訪問端口
     app.use('/', express.static(__dirname + '/pages'));//綁定頁面路徑,在pages下創(chuàng)建a.html頁面,可使用ip:8000/a.html訪問到
     //app.use('/', express.static(__dirname + '/pages1'));//可配置多路徑,但默認(rèn)會自上往下查找,找到后即返回,終止查找
     app.get('/', function (req, res) {
      res.send('Hello World');//當(dāng)訪問Ip:8000時(shí),頁面即可顯示
 })

  3.重啟后訪問ip:port/a.html即可訪問到該頁面

五、引用其他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ù)
  server.listen(8000);//添加訪問端口
  app.use('/', express.static(__dirname + '/pages'));//綁定頁面路徑,在pages下創(chuàng)建a.html頁面,可使用ip:8000/a.html訪問到. "__dirname"為項(xiàng)目路徑默認(rèn)變量
    app.get('/', function (req, res) {
   res.send(include.sayHello("demo"));
  })

六、解析請求參數(shù)

  1.在demo.js中添加后請求鏈接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ù)
  server.listen(8000);//添加訪問端口
  app.use('/', express.static(__dirname + '/pages'));//綁定頁面路徑,在pages下創(chuàng)建a.html頁面,可使用ip:8000/a.html訪問到. "__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請求

  1.post

  在demo.js中添加如下內(nèi)容后訪問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ù)
  server.listen(8000);//添加訪問端口
  app.use('/', express.static(__dirname + '/pages'));//綁定頁面路徑,在pages下創(chuàng)建a.html頁面,可使用ip:8000/a.html訪問到. "__dirname"為項(xiàng)目路徑默認(rèn)變量
  //app.use('/', express.static(__dirname + '/pages1'));//可配置多路徑,但默認(rèn)會自上往下查找,找到后即返回,終止查找
  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);//獲得請求的參數(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ā)送請求
     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)容后訪問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ù)
  server.listen(8000);//添加訪問端口
  app.use('/', express.static(__dirname + '/pages'));//綁定頁面路徑,在pages下創(chuàng)建a.html頁面,可使用ip:8000/a.html訪問到. "__dirname"為項(xiàng)目路徑默認(rèn)變量
  //app.use('/', express.static(__dirname + '/pages1'));//可配置多路徑,但默認(rèn)會自上往下查找,找到后即返回,終止查找
  app.get('/', function (req, res) {
    // 解析 url 參數(shù)
    var params = url.parse(req.url, true).query;
 
    //get 請求外網(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

<!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="發(fā)送" />
  <br/>
</body>
<script src="socket.io.js"></script>
<script src="jquery-1.11.3.min.js"></script>
<script>
$(function(){
  var socket=io.connect();//與服務(wù)器進(jìn)行連接
  $('#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>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • node.js中格式化數(shù)字增加千位符的幾種方法

    node.js中格式化數(shù)字增加千位符的幾種方法

    這篇文章主要介紹了node.js中格式化數(shù)字增加千位符的幾種方法,本文給出3種實(shí)現(xiàn)方法,并分別給出實(shí)例代碼,需要的朋友可以參考下
    2015-07-07
  • node.js在Linux下執(zhí)行shell命令、.sh腳本的問題

    node.js在Linux下執(zhí)行shell命令、.sh腳本的問題

    很多時(shí)候需要多個(gè)命令來完成一項(xiàng)工作,而這個(gè)工作又常常是重復(fù)的,這個(gè)時(shí)候我們自然會想到將這些命令寫成sh腳本,下次執(zhí)行下這個(gè)腳本一切就都搞定了,下面就是發(fā)布代碼的一個(gè)腳本示例
    2022-01-01
  • Linux環(huán)境部署node服務(wù)并啟動(dòng)詳細(xì)步驟

    Linux環(huán)境部署node服務(wù)并啟動(dòng)詳細(xì)步驟

    最近用node.js開發(fā)了一個(gè)web項(xiàng)目,下面這篇文章主要給大家介紹了關(guān)于Linux環(huán)境部署node服務(wù)并啟動(dòng)的詳細(xì)步驟,文中通過圖文以及示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Node.js中用D3.js的方法示例

    Node.js中用D3.js的方法示例

    這篇文章主要給大家介紹了在Node.js中用D3.js的方法,文中分別介紹了如何安裝模塊和一小段簡單的示例代碼,有需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • npm install常見錯(cuò)誤類型及對應(yīng)的解決方案

    npm install常見錯(cuò)誤類型及對應(yīng)的解決方案

    在前端開發(fā)中,npm是最常用的包管理工具,通過 npm install 命令,開發(fā)者可以輕松地安裝項(xiàng)目所需的依賴包,然而,在實(shí)際使用過程中,npm install 可能會因?yàn)楦鞣N原因而報(bào)錯(cuò),本文將詳細(xì)介紹一些常見的 npm install 錯(cuò)誤類型、發(fā)生原因及其對應(yīng)的解決方案,需要的朋友可以參考下
    2025-03-03
  • Mongoose經(jīng)常返回e11000 error的原因分析

    Mongoose經(jīng)常返回e11000 error的原因分析

    這篇文章主要給大家分析了Mongoose經(jīng)常返回e11000 error的原因,文中介紹的非常詳細(xì),對大家具有一定的參考價(jià)值,需要的朋友可以們下面來一起看看吧。
    2017-03-03
  • Node.js實(shí)現(xiàn)在目錄中查找某個(gè)字符串及所在文件

    Node.js實(shí)現(xiàn)在目錄中查找某個(gè)字符串及所在文件

    這篇文章主要介紹了Node.js實(shí)現(xiàn)在目錄中查找某個(gè)字符串及所在文件,文中代碼簡潔,而且速度相當(dāng)?shù)目?需要的朋友可以參考下
    2014-09-09
  • 利用node 判斷打開的是文件 還是 文件夾的實(shí)例

    利用node 判斷打開的是文件 還是 文件夾的實(shí)例

    今天小編就為大家分享一篇利用node 判斷打開的是文件 還是 文件夾的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • 詳解利用nodejs對本地json文件進(jìn)行增刪改查

    詳解利用nodejs對本地json文件進(jìn)行增刪改查

    這篇文章主要介紹了詳解利用nodejs對本地json文件進(jìn)行增刪改查,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • nvm使用use命令失效問題解決方法

    nvm使用use命令失效問題解決方法

    這篇文章主要給大家介紹了關(guān)于nvm使用use命令失效問題的解決方法,nvm是一個(gè)類似于版本管理工具的軟件,它可以輕松地在同一臺計(jì)算機(jī)上管理多個(gè)不同的node.js版本,需要的朋友可以參考下
    2023-07-07

最新評論

定结县| 来凤县| 栖霞市| 华宁县| 信宜市| 建水县| 吉木萨尔县| 永寿县| 庆云县| 五大连池市| 白沙| 崇信县| 达孜县| 鄂伦春自治旗| 桐庐县| 辽源市| 黔东| 达孜县| 会东县| 潜山县| 丹棱县| 青田县| 雅江县| 方山县| 英山县| 贡觉县| 讷河市| 绥棱县| 威远县| 扶沟县| 桑日县| 岳西县| 郯城县| 大悟县| 红原县| 额尔古纳市| 渝北区| 永泰县| 广河县| 甘孜县| 大姚县|