Processingで普通に通信をすると通信が終わるまで描写が止まってしまいます。それではまずいのでThreadにしてサーバからレスポンスを受けとるようにしたコードを書きました。このコードはGitHubにアップしてあります。
HTTP-Requests-for-Processing
post、getができる HTTP-Requests-for-Processing ライブラリを使うのでここからダウンロードしてライブラリフォルダまたはcodeフォルダに入れてください。
Processing
HttpResponse.pde (メインのpde)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | private final HttpConnect httpConnect = new HttpConnect(); void setup() {   // send data   httpConnect.SetData(123); } void draw() { } // response void SetDataOnComplete(String _response) {   println("response: " + _response); } | 
HttpConnect.pde (通信部分をクラス化したpde)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | import http.requests.*; class HttpConnect{   // vars   private final String setDataUrl = "http://example.com/setData.php";   private Thread setStandNumThread;   // constructor   HttpConnect(){   }   // SetData   public void SetData(int _data){     setStandNumThread = new Thread(new SetDataThread(setDataUrl, _data));     setStandNumThread.start();   } } class SetDataThread implements Runnable {   private String setDataUrl;   private int data;   public SetDataThread(String _setDataUrl, int _data){     setDataUrl = _setDataUrl;     data = _data;   }   public synchronized void run() {     GetRequest get = new GetRequest(       setDataUrl + "?m=" + data     );     get.send();     String response = get.getContent();     SetDataOnComplete(response);   } } | 
php
setData.php
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php     // const vars init     const SET_OK            = 1;     const GET_DATA_ERROR    = 1001;     // get from signage app     $data = $_GET["data"];     // vars init     $returnNum = SET_OK;     // save data     if( $data === "" || $data === null )         $returnNum = GET_DATA_ERROR;     echo $returnNum; ?> | 
 
		         
							
														
						 
							
														
						




 
					
				



コメントを残す