PlayCanvasでWebSocket通信を行う
こちらの記事を見ながら、PlayCanvasでWebSocket通信をする方法を勉強しています。
Real Time Multiplayer | Learn PlayCanvas
Glitch
WebSocket通信をするためには、node.jsのサーバーを立てる必要があります。
このチュートリアルでは、glitchというサービスを使ってnode.jsのサーバーをつくります。
まずは、下記URLをクリックしてnode.jsサーバー用のプロジェクトをつくります。
![server.js – dapper-thundering-answer 2022-04-24 22-25-52.jpg Server js dapper thundering answer 2022 04 24 22 25 52](https://digital-light.jp/wp-content/uploads/2022/04/89f1f324171f994d439de06105a7580a.jpg)
server.jsの中身を全削除して下記のコードに変更します。
var server = require('http').createServer(); var options = { cors: true } var io = require('socket.io')(server, options); io.sockets.on('connection', function(socket) { console.log("Client has connected!"); }); console.log ('Server started.'); server.listen(3000);
次に、glitchにsocket.ioを追加します。
![package.json – dapper-thundering-answer 2022-04-24 22-30-15.jpg Package json dapper thundering answer 2022 04 24 22 30 15](https://digital-light.jp/wp-content/uploads/2022/04/2be07c94ea2d54ef3ab3dc06fad47de5.jpg)
上の画像はすでに追加されているのですが、package.jsonをマウスでクリックした後、”+ADD PACKAGE”をクリック。
![package.json – dapper-thundering-answer 2022-04-24 22-31-45.jpg Package json dapper thundering answer 2022 04 24 22 31 45](https://digital-light.jp/wp-content/uploads/2022/04/8b59eef15e5d149aa3a60763211f5c0e.jpg)
フォームに”socket.io”といれてクリックすると、
![package.json – dapper-thundering-answer 2022-04-24 22-32-29.jpg Package json dapper thundering answer 2022 04 24 22 32 29](https://digital-light.jp/wp-content/uploads/2022/04/f1e868970cb39ccc980e429d1c7ea63c.jpg)
package.jsonにsocket.ioが追加されます。
![package.json – dapper-thundering-answer 2022-04-24 22-34-21.jpg Package json dapper thundering answer 2022 04 24 22 34 21](https://digital-light.jp/wp-content/uploads/2022/04/eef5153e4c2086acef4fe980cb2e991b.jpg)
すると、glitchのlogに”Server started”と表示されます。
PlayCanvas側
PlayCanvasでプロジェクトを立ち上げます。
![Multi | Editor 2022-04-24 22-43-02.jpg Multi | Editor 2022 04 24 22 43 02](https://digital-light.jp/wp-content/uploads/2022/04/Multi-Editor-2022-04-24-22-43-02.jpg)
左下にある歯車のアイコンをクリック。
右にSETTINGSが表示されるので、この中にある”EXTERNAL SCRIPTS”をクリック。
URLs を 1
その下に socket.ioのCDN URLを入力します。
https://cdnjs.cloudflare.com/ajax/libs/socket.io/3.1.1/socket.io.min.js
今回はこちらのURLを使用。
![Multi | Editor 2022-04-24 22-40-21.jpg Multi | Editor 2022 04 24 22 40 21](https://digital-light.jp/wp-content/uploads/2022/04/Multi-Editor-2022-04-24-22-40-21.jpg)
次はASSETSにNetwork.jsというscriptを作成します。
![Multi | Code Editor 2022-04-24 22-41-30.jpg Multi | Code Editor 2022 04 24 22 41 30](https://digital-light.jp/wp-content/uploads/2022/04/Multi-Code-Editor-2022-04-24-22-41-30.jpg)
initializeメソッドに、glitchのURLを入力します。
![package.json – dapper-thundering-answer 2022-04-24 22-47-15.jpg Package json dapper thundering answer 2022 04 24 22 47 15](https://digital-light.jp/wp-content/uploads/2022/04/6af65bd0d7f7fbeb347974fece810f99.jpg)
自分のglitchプロジェクトのURLは、
this.socket = io.connect('https://【ここを変更】.glitch.me');
こんな感じです。
glitchとPlayCanvasの通信確認
これで、PlayCanvasを起動。
![package.json – dapper-thundering-answer 2022-04-24 22-51-59.jpg Package json dapper thundering answer 2022 04 24 22 51 59](https://digital-light.jp/wp-content/uploads/2022/04/255a2c9a6f451a7223a724634dc5ba3d.jpg)
glitchのlog画面で”Client has connected!”と表示されれば、glitchとPlayCanvasの通信が確認できたことになります。
まとめ
まずは、glitchとPlayCanvasの通信ができたのですが、この後のTutorialをすすめるには、Socket.IOを勉強する必要があるので、次に進む前にSocket.IOを学ぶことにします。