LoginSignup
5
4

More than 5 years have passed since last update.

Cocos2d-xのサーバー通信方法(JSON+PHP+MySQL) Part1

Last updated at Posted at 2017-11-15

はじめに

インターネット上にあるCocos2d-xとサーバー通信方法の情報が少ないので自身が作ってきたものを投稿にしていく
Cocos2d-xを使用しサーバー通信したい人向けの内容

サーバー通信の手順

1.通信したい情報をJSON形式で作る

2.JSONをCocos2d-xにてPHPにリクエストする

3.PHPを利用してMySQLに書き込みorデータ読み込みをする

今回記事にするところ

  • JSONの作成
  • HTTPリクエスト

JSONの作成

JSON作成の為にpicojsonを使用する

sample.cpp
#include "picojson.h"

//How to use
picojson::object obj;
obj.insert(std::make_pair("str", picojson::value("test")));
obj.insert(std::make_pair("val1", picojson::value(StringUtils::format("%i", 1)))));
obj.insert(std::make_pair("val2", picojson::value(StringUtils::format("%f", 1.1))));

picojson::value val(obj);
std::string json = val.serialize();

JSONに値を追加する時は[key][値(文字列)]を指定し下記のように追加する

obj.insert(std::make_pair([key], picojson::value([値(文字列)])));

これでJSONデータは完成

HTTPリクエスト

cocos2d-xにてHTTPリクエストを送信する

sample.cpp
#include "network/HttpRequest.h"
#include "network/HttpClient.h"

//How to use
auto request = new cocos2d::network::HttpRequest();

request->setUrl("リクエストURL");
request->setRequestType(cocos2d::network::HttpRequest::Type::POST);
request->setTag("setInsert");
request->setResponseCallback([=](cocos2d::network::HttpClient* client, cocos2d::network::HttpResponse* response){
    if (response->isSucceed()) {
        //送信成功時の処理

    }else {
        //送信失敗時の処理

    }
});

//ここから上記のJSON作成
picojson::object obj;
obj.insert(std::make_pair("str", picojson::value("test")));
obj.insert(std::make_pair("val1", picojson::value(StringUtils::format("%i", 1)))));
obj.insert(std::make_pair("val2", picojson::value(StringUtils::format("%f", 1.1))));

picojson::value val(obj);
std::string json = val.serialize();
//ここまで

request->setRequestData(json.c_str(), json.length());

auto httpClient = cocos2d::network::HttpClient::getInstance();
httpClient->enableCookies(nullptr);
httpClient->send(request);
request->release();

これでリクエストURLにJSON形式の文字列を送信する事が可能

おまけ

今回はCocos2d-xを使用しているが、

  • JSON作成
  • HTTPリクエスト送信

この二つが出来れば同様にサーバー通信が可能

Part2

次回はリクエストURLのPHP作成

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4