


AMFPHP php遠(yuǎn)程調(diào)用(RPC, Remote Procedure Call)工具 快速入門_PHP
Jun 01, 2016 pm 12:18 PM(1) Flash 和 Flex Remoting
(2) JavaScript JSON 和 Ajax JSON
(3) XML 和XML-RPC
什么是RPC
遠(yuǎn)端程序調(diào)用(RPC, Remote Procedure Call) 是一種客戶端與服務(wù)器端交換數(shù)據(jù)方式。我們可以調(diào)用本地對(duì)象帶對(duì)各種參數(shù)方法設(shè)置回調(diào)并接受調(diào)用結(jié)果。我們不用關(guān)心發(fā)送和接收數(shù)據(jù)的實(shí)現(xiàn)細(xì)節(jié)。實(shí)現(xiàn)細(xì)節(jié)通常是抽象的,就像我們?cè)谡{(diào)用本地方法一樣。
AMFPHP的工作原理
客戶端(Flash / Flex)與服務(wù)器端(PHP) 使用相同的方式描述方法調(diào)用和復(fù)雜數(shù)據(jù)??蛻舳诵蛄谢?qǐng)求并將它發(fā)送到網(wǎng)關(guān)AMFPHP。AMFPHP再執(zhí)行:
(1) 反序列化請(qǐng)求
(2) 找到相應(yīng)的遠(yuǎn)程服務(wù)類
(3) 實(shí)例化類
(4) 執(zhí)行安全檢查
(5)(使用指定參數(shù))調(diào)用服務(wù)器端方法
(6) 序列化返回的數(shù)據(jù)
AMFPHP可以正確地序列化、反序列化復(fù)雜類型數(shù)據(jù)。除了對(duì)象和數(shù)組,它還支持 resources 數(shù)據(jù)連接資源,這就意味著我們可以通過(guò)調(diào)用遠(yuǎn)程方法簡(jiǎn)單返回mysql_query,amfphp 會(huì)處理這一切。如果平臺(tái)支持 (目前來(lái)說(shuō),F(xiàn)lash Remoting 和Flex Remoting),AMFPHP還可以處理循環(huán)引用和自定義數(shù)據(jù)它也支持簡(jiǎn)單的遠(yuǎn)程調(diào)試。還有AMFPHP附帶一個(gè)瀏覽器,它可以在創(chuàng)建客戶端代碼前測(cè)試遠(yuǎn)程服務(wù)。AMFPHP 1.0.1還添加了模板,可以自動(dòng)生成客戶端代碼。AMFPHP 1.9 beta更是新增了對(duì)AMF3的支持。
簡(jiǎn)單示例
下面我們通過(guò)一個(gè)簡(jiǎn)單的登錄示例來(lái)對(duì)AMFPHP有一個(gè)初步的認(rèn)識(shí),將分別從客戶端和服務(wù)器端兩個(gè)部分進(jìn)行介紹。
一,F(xiàn)lex客戶端:
代碼
復(fù)制代碼 代碼如下:
import mx.controls.Alert;
import mx.rpc.remoting.mxml.RemoteObject;
import mx.rpc.events.*;
public var login_remoteObj:RemoteObject = null;
public function initLoginRemoteObject():void
{//初始化RemoteObject
this.login_remoteObj = new RemoteObject();
this.login_remoteObj.source = "Login";
this.login_remoteObj.destination = "amfphp";
this.login_remoteObj.showBusyCursor = true;
this.login_remoteObj.endpoint = "http://localhost/MyTest/amfphp/gateway.php";
this.login_remoteObj.doLogin.addEventListener("result", loginHandler);
this.login_remoteObj.doLogin.addEventListener("fault", faultHandler);
}
public function doLogin():void
{//登陸操作,向服務(wù)器提交數(shù)據(jù)
var name:String = this.txtName.text;
var pwd:String = this.txtPassword.text;
var data:Array = new Array();
data.push(name);
data.push(pwd);
this.login_remoteObj.getOperation("doLogin").send(data);
}
public function loginHandler(event: ResultEvent):void
{//處理服務(wù)器返回的結(jié)果
var result:Array = event.result as Array;
var flag:String = result[0];
if (flag == "0") {
Alert.show("登陸失敗: " + result[1]);
} else if (flag == "1") {
Alert.show("登陸成功: " + result[1]);
} else if (flag == "-1") {
Alert.show("異常: " + result[1]);
}
}
public function faultHandler(event: FaultEvent):void
{//出錯(cuò)處理
Alert.show("sorry,出錯(cuò)了!!!");
}
}
二,PHP服務(wù)器端
1,將amfphp文件夾置于MyTest項(xiàng)目的根目錄下,打開瀏覽器輸入下述地址驗(yàn)證amfphp是否安裝成功
復(fù)制代碼 代碼如下:
http://localhost/MyTest/amfphp/gateway.php
amfphp就是通過(guò)這個(gè)gateway來(lái)定位我們的服務(wù)類,并將請(qǐng)求轉(zhuǎn)發(fā)給這些服務(wù)類進(jìn)行處理的。
2,Login.php文件,包含了處理登陸請(qǐng)求的Login類,此文件置于BusinessLogic目錄下
代碼
復(fù)制代碼 代碼如下:
class Login
{
public function doLogin($data)
{
$result = array();
try {
$name = array_shift($data);
$pwd = array_shift($data);
if ($name == "phinecos" && $pwd == "123") {
$result[] = "1";
$result[] = "you are valid user!";
} else {
$result[] = "0";
$result[] = "login failed";
}
} catch (Exception $ex) {
$result[] = "-1";
$result[] = $ex->getMessage();
}
return $result;
}
}
?>
3,將globals.php中的服務(wù)路徑項(xiàng)修改如下,為amfphp指明服務(wù)類所在的目錄
復(fù)制代碼 代碼如下:
$servicesPath = "../BusinessLogic/";
作者:洞庭散人
AMFPHP 下載地址

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Permulaan Pantas: Cara memasang perpustakaan panda dalam Python memerlukan contoh kod khusus 1. Gambaran Keseluruhan Python ialah bahasa pengaturcaraan yang digunakan secara meluas dengan ekosistem pembangunan yang berkuasa yang merangkumi banyak perpustakaan praktikal. Pandas ialah salah satu perpustakaan analisis data yang paling popular Ia menyediakan struktur data dan alat analisis data yang cekap, menjadikan pemprosesan dan analisis data lebih mudah. Artikel ini akan memperkenalkan cara memasang perpustakaan panda dalam Python dan memberikan contoh kod yang sepadan. 2. Pasang Py

Kami memulakan siri ini dengan mempelajari cara menghidupkan elemen HTML menggunakan mojs. Dalam tutorial kedua ini, kami terus menggunakan modul Shape untuk menghidupkan bentuk SVG terbina dalam. Tutorial ketiga merangkumi lebih banyak cara untuk menghidupkan bentuk SVG menggunakan ShapeSwirl dan modul stagger. Sekarang kita akan belajar cara menghidupkan bentuk SVG yang berbeza dalam letusan menggunakan modul Burst. Tutorial ini bergantung pada konsep yang kami bincangkan dalam tiga tutorial pertama. Jika anda belum membacanya lagi, saya syorkan membacanya dahulu. Mencipta Animasi Letusan Asas Perkara pertama yang perlu kita lakukan sebelum mencipta sebarang animasi letusan ialah membuat instantiat objek Letusan. Selepas itu, kita boleh menentukan sifat yang berbeza

Mula Pantas: Gunakan fungsi bahasa Go untuk melaksanakan perkhidmatan penstriman audio ringkas Pengenalan: Perkhidmatan penstriman audio menjadi semakin popular di dunia digital hari ini, yang membolehkan kami memainkan fail audio terus melalui rangkaian tanpa melakukan muat turun yang lengkap. Artikel ini akan memperkenalkan cara menggunakan fungsi bahasa Go untuk melaksanakan perkhidmatan penstriman audio ringkas dengan cepat supaya anda boleh memahami dan menggunakan fungsi ini dengan lebih baik. Langkah 1: Penyediaan Pertama, anda perlu memasang persekitaran pembangunan bahasa Go. Anda boleh memuat turunnya dari laman web rasmi (https://golan

Permulaan Pantas: Gunakan fungsi bahasa Go untuk melaksanakan fungsi pengecaman imej mudah Dalam perkembangan teknologi hari ini, teknologi pengecaman imej telah menjadi topik hangat. Sebagai bahasa pengaturcaraan yang pantas dan cekap, bahasa Go mempunyai keupayaan untuk melaksanakan fungsi pengecaman imej. Artikel ini akan memberikan pembaca panduan permulaan pantas dengan menggunakan fungsi bahasa Go untuk melaksanakan fungsi pengecaman imej yang mudah. Pertama, kita perlu memasang persekitaran pembangunan bahasa Go. Anda boleh memuat turun versi yang sesuai di laman web rasmi bahasa Go (https://golang.org/)

Permulaan Pantas: Panduan untuk Menggunakan Lima Alat Visualisasi Kafka 1. Alat Pemantauan Kafka: Pengenalan Apache Kafka ialah sistem pemesejan terbitan-langganan teragih yang boleh mengendalikan sejumlah besar data dan memberikan daya pemprosesan yang tinggi dan kependaman rendah. Disebabkan oleh kerumitan Kafka, alat visualisasi diperlukan untuk membantu memantau dan mengurus gugusan Kafka. 2.Alat visualisasi Kafka: lima pilihan utama KafkaManager: KafkaManager ialah komuniti web sumber terbuka

Mula Pantas: Melaksanakan Perkhidmatan Penstriman Video Mudah Menggunakan Fungsi Bahasa Go Pengenalan: Perkhidmatan penstriman video memainkan peranan penting dalam aplikasi moden. Artikel ini akan memperkenalkan cara menggunakan fungsi bahasa Go untuk melaksanakan perkhidmatan penstriman video ringkas. Kami akan menggunakan pakej net/http bahasa Go untuk mengendalikan permintaan HTTP, dan menggabungkannya dengan perpustakaan FFmpeg untuk mengendalikan pengekodan dan penyahkodan strim video. Langkah 1: Pasang FFmpeg Sebelum kita mula menulis kod, kita perlu memasang perpustakaan FFmpeg. Boleh diakses melalui laman web rasmi FFmpeg

Mula Pantas: Gunakan fungsi bahasa Go untuk melaksanakan fungsi pengagregatan data yang mudah Dalam pembangunan perisian, kita sering menghadapi situasi di mana kita perlu mengagregatkan satu set data. Operasi pengagregatan boleh mengira, meringkaskan, mengira, dsb., untuk menganalisis dan memaparkan data. Dalam bahasa Go, kita boleh menggunakan fungsi untuk melaksanakan fungsi pengagregatan data mudah. Pertama, kita perlu menentukan jenis data untuk mewakili data yang ingin kita agregatkan. Katakan kita mempunyai jadual gred pelajar, dan setiap pelajar mempunyai dua medan: nama dan gred, maka kita boleh mencipta struktur berikut

Tajuk: Bermula Dengan Cepat: Disyorkan Lima Rangka Kerja Bahasa Common Go Sejak beberapa tahun kebelakangan ini, dengan populariti bahasa Go, semakin ramai pembangun telah memilih untuk menggunakan Go untuk pembangunan projek. Bahasa Go telah mendapat perhatian meluas kerana kecekapan, kesederhanaan dan prestasi unggulnya. Dalam pembangunan bahasa Go, memilih rangka kerja yang sesuai boleh meningkatkan kecekapan pembangunan dan kualiti kod. Artikel ini akan memperkenalkan lima rangka kerja yang biasa digunakan dalam bahasa Go dan melampirkan contoh kod untuk membantu pembaca bermula dengan cepat. Rangka kerja Gin Gin ialah rangka kerja web ringan yang pantas dan cekap.
