cara mengirim pesan dari layanan web php ke perangkat ios tertentu

Saya memiliki perangkat ios dan layanan web yang ditulis dalam php. Saat perangkat ios mengirim permintaan ke layanan web, layanan web akan merespons perangkat ios tersebut. Saya tidak tahu bagaimana server mengirim respons ke perangkat itu. Terima kasih atas bantuan Anda!


person Truong Ho    schedule 03.12.2012    source sumber


Jawaban (2)


Anda dapat meneliti masing-masing komponen berikut:

1) Aplikasi membuat permintaan HTTP POST ke layanan web dengan metode delegasi panggilan balik (ASIHttpRequest atau AFNetworking)

2) Server menerima permintaan, menguraikannya, lalu membuat respons JSON dan mengembalikannya ke aplikasi secara otomatis (gunakan kerangka web)

3) Dalam metode panggilan balik delegasi aplikasi Anda, Anda akan mengurai data JSON sebagai NSDictionary. Anda mengekstrak nilai kunci JSON menggunakan [yourDictionary valueForKey:@"name"];, [yourDictionary valueForKey:@"age"], [yourDictionary valueForKey:@"gender"], [yourDictionary valueForKey:@"email"] dll.

Kemudian aplikasi Anda dapat menampilkan data yang diurai di layar atau melakukan hal lain dengannya.

Sunting

Karena Anda menggunakan PHP sebagai bahasa layanan web, saya sarankan menggunakan kerangka web Symfony 2.

Anda akan menulis sesuatu seperti

// get request
$inputName = $_REQUEST['name'];

// ORM
$em = $this->getDoctrine()->getManager();

// find email based on name
$member = $em->getRepository('MyWebAppWebServiceBundle:Member')->findOneByName($inputName);

...

// construct JSON array
$json = array(
    'id' => $member->getId(),
    'name' => $member->getName(),
    'email' => $member->getEmail()
);

// send the response back to the user as JSON data
$response = new Response(json_encode($json));
$response->headers->set('Content-Type', 'application/json');
return $response;

Alternatifnya, jika Anda menginginkan aplikasi yang skalabel, Anda dapat menggunakan Node.js (Javascript sisi server)

person Zhang    schedule 03.12.2012
comment
Terima kasih atas tanggapan Anda. Saya telah melakukan langkah 1, dan 3. Pada langkah 2, saya menggunakan sendResponse(200, json_encode($result)); untuk merespons klien, tetapi saya ingin tahu apakah responsnya sama persis dengan klien yang mengirim permintaan - person Truong Ho; 03.12.2012
comment
Terima kasih atas kode Anda. Anda menggunakan $response = new Response(json_encode($json)); $response-›headers-›set('Tipe Konten', 'aplikasi/json'); kembalikan $respons; Tapi saya tidak bisa melihat di kode mana Anda menentukan alamat penerima? - person Truong Ho; 03.12.2012
comment
Mengapa Anda tidak mencoba mengirimkan permintaan pada simulator Anda dan melihat apakah Anda mendapat respons dari ponsel Anda? Saya tidak berpikir permintaan akan dikirim secara acak ke orang lain kecuali Anda menyuruhnya. - person Zhang; 03.12.2012
comment
Tautan ini mungkin menjawab pertanyaan Anda tentang resolusi target respons stackoverflow.com/questions/4104525/ - person Zhang; 03.12.2012
comment
Ya, simulator mendapat respon dari layanan web, Tapi saya tidak tahu pasti apakah yang lain juga menerima pesan itu - person Truong Ho; 03.12.2012
comment
Buka browser Anda, kirim permintaan, simulator Anda tidak akan menerima respons. Itu salah satu cara Anda dapat mengujinya. Anda tidak perlu khawatir tentang hal ini, ketika mereka membangun protokol HTTP, mereka sudah memikirkan hal ini, jika tidak, ketika Anda melakukan pencarian Google, seluruh dunia akan melihat apa yang Anda cari :P - person Zhang; 03.12.2012

Jika itu adalah situs seluler atau aplikasi, Anda dapat menggunakan jquery ajax untuk menanyakan layanan web Anda, yang akan menghasilkan respons jika ada.

person Slimtugo    schedule 03.12.2012
comment
Terima kasih atas bantuan Anda, Tapi saya menggunakan posting http, json untuk mengirim dari klien ios ke layanan web php. Jquery atau ajax tidak relevan dengan situasi ini - person Truong Ho; 03.12.2012