やりたかったこと
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){
}