LoginSignup
15
18

More than 5 years have passed since last update.

Unityで作成のアプリにWebSocketを用いる

Last updated at Posted at 2016-07-08

ここでは、Unityで作成のアプリにの処理中に、WebSocketを使ったメッセージの送受信を行う実装方法を紹介する。UnityのアプリはC#で開発しているものとする。また、WebSocket自体の実装については省略する。
本記事では、WebSocket-Sharp(http://sta.github.io/websocket-sharp/) を用いる。Unityが対応しているWebSocketは数少なく、WebSocket-Sharpはその対応しているうちの一つであるからである。

メッセージを送信する処理の実装

WebSocketを用いるためには、WebSocket-Sharpで定義されているWebSocketクラスのオブジェクトを生成する必要がある。コンストラクタの引数には、WebSocketが実装されているサーバのURLを指定する。

var socket = new WebSocket($"WebSocketが実装されているサーバのURL")

次に、WebSocketのコネクションを確立する。WebSocketのオブジェクトにクッキーなどの設定をする必要がある場合は、socket.Connect()を実行するよりも前に設定する。

socket.Connect();

そして、Send()により、クライアントに送信したいメッセージを送信することができる。

socket.Send("送信したい文字列");

メッセージを受信する処理の実装

WebSocketでメッセージを受信する際にも、WebSocketクラスのオブジェクトを生成する必要がある。コンストラクタの引数には、メッセージ送信側で指定しているWebSocketのサーバのURLと同じものを指定する。

var socket = new WebSocket($"WebSocketが実装されているサーバのURL")

次に、WebSocketからのメッセージを受信するために、WebSocketオブジェクトに対してイベントハンドラを登録する。イベントハンドラの登録とは、そのオブジェクトの特定のイベントが発生したことを検知して、そのタイミングで何かしらの処理を実行することである。イベントハンドラの登録は、以下のように記述できる。

// WebSocketの接続が確立されたときのイベントハンドラ
socket.OnOpen += (sender, e) => {[このときに実行したい処理を記述する]};

// WebSocketからメッセージが送信されたときのイベントハンドラ
socket.OnMessage += {[このときに実行したい処理を記述する]};

// WebSocketとの接続にエラーが発生したときのイベントハンドラ
socket.OnError += (sender, e) => {[このときに実行したい処理を記述する]};

// WebSocketとの接続が終了したときのイベントハンドラ
socket.OnClose += (sender, e) => {[このときに実行したい処理を記述する]};

イベントハンドラの登録後には、WebSocketのコネクションを確立すること。

socket.Connect();
15
18
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
15
18