Home Backend Development PHP Tutorial AMFPHP php remote call RPC, Remote Procedure Call tool quick start tutorial

AMFPHP php remote call RPC, Remote Procedure Call tool quick start tutorial

Jul 29, 2016 am 08:42 AM
login this

It enables PHP to communicate seamlessly with the following technologies:
(1) Flash and Flex Remoting
(2) JavaScript JSON and Ajax JSON
(3) XML and XML-RPC
What is RPC
Remote Procedure Call (RPC, Remote Procedure Call) is a way for the client and server to exchange data. We can call local objects with callbacks for various parameter methods and accept the call results. We don't need to worry about the implementation details of sending and receiving data. Implementation details are usually abstract, as if we were calling a native method.
How AMFPHP works
 Client (Flash/Flex) and server-side (PHP) use the same way to describe method calls and complex data. The client serializes the request and sends it to the gateway AMFPHP. AMFPHP then executes:
  (1) Deserialize the request
  (2) Find the corresponding remote service class
  (3) Instantiate the class
  (4) Perform security check
  (5) Call the server-side method
(using specified parameters) (6) Serialization of returned data
AMFPHP can correctly serialize and deserialize complex type data. In addition to objects and arrays, it also supports resources data connection resources, which means that we can simply return mysql_query by calling the remote method, and amfphp will handle it all. If the platform supports it (currently, Flash Remoting and Flex Remoting), AMFPHP can also handle circular references and custom data. It also supports simple remote debugging. There is also AMFPHP that comes with a browser that can test remote services before creating client code. AMFPHP 1.0.1 also adds templates to automatically generate client code. AMFPHP 1.9 beta adds support for AMF3.
Simple example
Below we will have a preliminary understanding of AMFPHP through a simple login example, which will be introduced from the client side and the server side respectively.
1, Flex client:
Code

Copy code The code is as follows:


import mx.controls.Alert;
import mx.rpc.remoting.mxml.RemoteObject;
import mx.rpc.events. *;
Public var login_remoteObj: RemoteObject = Null;
Public function inition initloginremoteObject (): void {// initialization remoteObject OteObj = New RemoteObject ();
This.login_remoteObj.source = "Login";
this.login_remoteObjj .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
{//Login operation, submit data to the server
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
{//Process the results returned by the server
var result:Array = event.result as Array;
var flag:String = result[0];
if (flag == "0") {
Alert.show("Login failed: " + result[1]);
} else if (flag == "1") {
Alert.show ("Successful login: " + result[1]);
} else if (flag == "-1") {
Alert.show("Exception: " + result[1]);
}
}
public function faultHandler(event: FaultEvent):void
{//Error handling
Alert.show("sorry, something went wrong!!!");
}
}


Second, PHP server side

1, set the amfphp file folder In the root directory of the MyTest project, open the browser and enter the following address to verify whether amfphp is successfully installed. Copy the code. The code is as follows:


http://localhost/MyTest/amfphp/gateway.php

amfphp uses this gateway to locate our service classes and forward requests to these service classes for processing. 2. The Login.php file contains the Login class that handles login requests. This file is placed in the BusinessLogic directory Code



Copy the code


The code is as follows:


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, modify the service path item in globals.php as follows, specify the directory where the service class is located for amfphp



Copy the code

The code is as follows:

$servicesPath = "../BusinessLogic/";

Author: Dongting SanrenAMFPHP download address The above introduces the AMFPHP php remote call RPC, Remote Procedure Call tool quick start tutorial, including the content. I hope it will be helpful to friends who are interested in PHP tutorials.


Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to use Flask-Login to implement user login and session management How to use Flask-Login to implement user login and session management Aug 02, 2023 pm 05:57 PM

How to use Flask-Login to implement user login and session management Introduction: Flask-Login is a user authentication plug-in for the Flask framework, through which we can easily implement user login and session management functions. This article will introduce how to use Flask-Login for user login and session management, and provide corresponding code examples. 1. Preparation Before using Flask-Login, we need to install it in the Flask project. You can use pip with the following command

An article that understands this point and catches up with 70% of front-end people An article that understands this point and catches up with 70% of front-end people Sep 06, 2022 pm 05:03 PM

A colleague got stuck due to a bug pointed by this. Vue2’s this pointing problem caused an arrow function to be used, resulting in the inability to get the corresponding props. He didn't know it when I introduced it to him, and then I deliberately looked at the front-end communication group. So far, at least 70% of front-end programmers still don't understand it. Today I will share with you this link. If everything is wrong If you haven’t learned it yet, please give me a big mouth.

How to use this method in Java How to use this method in Java Apr 18, 2023 pm 01:58 PM

1. this keyword 1. Type of this: Which object is called is the reference type of that object 2. Usage summary 1. this.data;//Access attribute 2. this.func();//Access method 3.this( );//Call other constructors in this class 3. Explanation of usage 1.this.data is used in member methods. Let us see what will happen if this is not added classMyDate{publicintyear;publicintmonth;publicintday; publicvoidsetDate(intyear,intmonth,intday){ye

Analysis of usage skills of this in jQuery Analysis of usage skills of this in jQuery Feb 22, 2024 pm 08:54 PM

jQuery is a popular JavaScript library widely used for DOM manipulation and event handling in web development. One of the important concepts is the use of this keyword. In jQuery, this represents the DOM element currently being operated on, but in different contexts, the pointer of this may be different. This article will analyze the usage skills of this in jQuery through specific code examples. First, let's look at a simple example:

Detailed explanation of this in JavaScript arrow function Detailed explanation of this in JavaScript arrow function Jan 25, 2024 pm 01:41 PM

The arrow function in JavaScript is a relatively new syntax. It does not have its own this keyword. On the contrary, the this of the arrow function points to the scope object containing it. The impacts are: 1. This in the arrow function is static; 2. Arrow Functions cannot be used as constructors; 3. Arrow functions cannot be used as methods.

Flask-Login: User authentication in Python web applications Flask-Login: User authentication in Python web applications Jun 17, 2023 am 08:50 AM

Flask-Login: User Authentication in Python web applications Security and user authentication are an integral part of Python-based web application development. Flask-Login is an excellent Python library that helps developers easily add authentication functionality to their Flask applications and provides a simple and flexible way to handle user login and logout. This article will introduce you to the basics of Flask-Login

What is this? An in-depth analysis of this in JavaScript What is this? An in-depth analysis of this in JavaScript Aug 04, 2022 pm 05:02 PM

What is this? The following article will introduce you to this in JavaScript, and talk about the differences between this in different calling methods of functions. I hope it will be helpful to you!

How does JavaScript change this pointer? Brief analysis of three methods How does JavaScript change this pointer? Brief analysis of three methods Sep 19, 2022 am 09:57 AM

How does JavaScript change this pointer? The following article will introduce to you three methods of changing this pointer in JS. I hope it will be helpful to you!

See all articles