LoginSignup
3
1

More than 5 years have passed since last update.

cocos2d-xでWebSocketの通信を行う

Posted at

やりたかったこと

cocos2d-x上でWebSocketを使って各端末間で通信したかった

用意するもの

WebSocketを受け付けるサーバー

今回はPHPの Ratchet を使ってサーバーを用意した。
Ratchetのチュートリアル に従ってtelnetでの接続確認後にHttpで受け付けるように変更してサーバーとして利用している。

先日の 記事 はこの時にWindows10上でtelnetが使いたかったので生まれた。

cocos2d-xでの送受信

WebSocket::Delegateが用意されているのでそちらを利用する。

WebSocket.h
#include <WebSocket.h>

class WebSocket : public cocos2d::Scene, WebSocket::Delegate
{
public:
    virtual void onOpen(WebSocket* ws);
    virtual void onMessage(WebSocket* ws, const WebSocket::Data& data);
    virtual void onClose(WebSocket* ws);
    virtual void onError(WebSocket* ws, const WebSocket::ErrorCode& error);

    WebSocket* webSocket;
WebSocket.cpp
bool WebSocket::init()
{
    webSocket = new WebSocket();
    webSocket->init(*this, "ws://[WebSocketサーバー]");

    webSocket->send("メッセージ送信");
}

void Chat::onOpen(WebSocket* ws) {
    log("接続しました。");
}
void Chat::onMessage(WebSocket* ws, const WebSocket::Data& data) {
    log(data.bytes);
}
void Chat::onClose(WebSocket* ws){
    log("切断されました。");
}
void Chat::onError(WebSocket* ws, const WebSocket::ErrorCode& error){
}
3
1
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
3
1