网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網(wǎng)

一斤代碼深入理解系列《三》:微信小程序和服務(wù)器通信

發(fā)布時(shí)間:2018-03-24 15:25 所屬欄目:小程序開發(fā)教程

如果你的小程序需要和遠(yuǎn)程的服務(wù)進(jìn)行交互,比如訪問你自己的或別人提供的遠(yuǎn)程API來操作數(shù)據(jù)(增刪改查),那么你就需要一種和遠(yuǎn)程服務(wù)器進(jìn)行通信的機(jī)制來完成這樣的功能。 基于瀏覽器的Web開發(fā)中,目前主要有2種主流 ...

 
 
 

如果你的小程序需要和遠(yuǎn)程的服務(wù)進(jìn)行交互,比如訪問你自己的或別人提供的遠(yuǎn)程API來操作數(shù)據(jù)(增刪改查),那么你就需要一種和遠(yuǎn)程服務(wù)器進(jìn)行通信的機(jī)制來完成這樣的功能。

基于瀏覽器的Web開發(fā)中,目前主要有2種主流的服務(wù)器通信方式:

  1. 通過Ajax發(fā)起HTTP請(qǐng)求訪問REST API
  2. 通過WebSocket進(jìn)行實(shí)時(shí)通信

小程序框架提供了一套自己的API,實(shí)現(xiàn)了跟以上2種方式基本等同的服務(wù)器訪問方法。由于無論是調(diào)用REST API,還是WebSocket通信,都是基于http協(xié)議的,為了保證安全性,小程序框架規(guī)定在生產(chǎn)環(huán)境下,只能使用安全的http協(xié)議,即HTTPS,這個(gè)也是一個(gè)大趨勢(shì)。而在開發(fā)環(huán)境下,為了方便起見,我們還是可以用普通的http協(xié)議來做開發(fā)調(diào)試的。

HTTP請(qǐng)求

小程序框架提供了一個(gè)名為wx.request()的方法,用于發(fā)起HTTP請(qǐng)求,不過值得注意,小程序?qū)Σl(fā)請(qǐng)求數(shù)量限制在了5個(gè)。

這個(gè)wx.request()方法的用法跟我們用jQuery里面的ajax方法十分的相似:


		
wx.request({ 
  url: 'https://your-domain/test',
  method: 'GET',
  data: { 
    param1: 'foo' , 
    param2: 'bar' 
  }, 
  header: { 
    'Content-Type': 'application/json' 
  }, 
  success: function(res) { 
    console.log(res.data) 
  }
})

借這個(gè)機(jī)會(huì),我們用node.js來寫一個(gè)正真的提供REST API服務(wù)的服務(wù)器端程序,并用小程序的API來連接測(cè)試一下。在這里我選用Sails框架來實(shí)現(xiàn)這個(gè)REST API Server。

首先我們安裝sails的命令行工具,在你的命令行工具輸入:


		
npm install -g sails

安裝完成后,建立一個(gè)新的項(xiàng)目目錄,比如叫rest-server,然后進(jìn)入該目錄,執(zhí)行以下命令:


		
sails new --no-linker --no-frontend

它會(huì)在當(dāng)前的rest-server目錄下,生成一堆代碼。這樣,一個(gè)提供REST服務(wù)的node.js服務(wù)器程序的架子就基本有了。

但是它里面還沒有包含任何可用的REST API,我們需要自行添加。讓我們?cè)赼pi/controllers目錄下新建一個(gè)UsersController.js的文件,然后添加如下內(nèi)容:

這個(gè)文件會(huì)被自動(dòng)映射成REST API,訪問路徑為/users/list,如果不做任何額外配置,那么這個(gè)API可以用任何HTTP Method去訪問,如果我們想要限定它只能以GET方式訪問,那么我們可以去config/routes.js中進(jìn)行如下配置:

好,一個(gè)非常簡(jiǎn)單的,可以用GET方式訪問的REST API就完成了,我們來把這個(gè)服務(wù)器運(yùn)行起來,在rest-server目錄下,運(yùn)行命令:


		
sails lift

成功啟動(dòng)后,就可以在1337端口進(jìn)行訪問了。我們可以直接在瀏覽器中輸入網(wǎng)址測(cè)試一下我們寫的API:

看上去我們的REST API已經(jīng)在工作了。那好,我們就在小程序中,試著去調(diào)用這個(gè)REST API:

如果我們成功獲取到這個(gè)API返回的數(shù)組數(shù)據(jù),我們就在小程序界面里將它們顯示出來:

這個(gè)是實(shí)際的運(yùn)行效果:

好了,這就是關(guān)于小程序調(diào)用REST API的一個(gè)非常簡(jiǎn)單的例子,實(shí)際的項(xiàng)目中,可能要復(fù)雜一些,但是萬變不離其宗。

WebSocket

有些應(yīng)用場(chǎng)景下,我們會(huì)對(duì)頁(yè)面的實(shí)時(shí)性有要求,在瀏覽器的Web頁(yè)面開發(fā)中,使用WebSocket API去連接一個(gè)提供WebSocket服務(wù)的服務(wù)器端,是目前的主流方案。

在瀏覽器中,我們直接使用WebSocket對(duì)象,然后調(diào)用這個(gè)對(duì)象上的一些方法和監(jiān)聽該對(duì)象發(fā)出的一些事件。而微信小程序框架提供的是一系列的函數(shù),不過,兩者在概念上基本是一樣的,所以熟悉WebSocket的朋友不會(huì)對(duì)其陌生。

在下一篇的文章里,我將繼續(xù)講解如何建立一個(gè)基于node.js的WebSocket服務(wù)器,并在小程序中使用它。



本文地址:http://www.xiuhaier.com/wxmini/doc/course/22854.html 復(fù)制鏈接 如需定制請(qǐng)聯(lián)系易優(yōu)客服咨詢:800182392 點(diǎn)擊咨詢
QQ在線咨詢
AI智能客服 ×