今どきのSocket.IOの書き方

Posted on 2022/09/22 by 弓削田公司
#Nodejs
本当はWebsocketモジュールの方が好きな、ユゲタです。 NodejsでのPolingするモジュールはいくつかありますが、やっぱり機能的にSocket.IOに軍配が上がってしまうようです。 無駄な機能が無い方が軽いと考えられるので、個人的にはwebsocketを使いたくて仕方がないんですが、 どうしてもRoomID機能が充実しているSocket,IOを使ってしまいます。 まあ、それは良いとして、このSocke.IOの書き方がバージョンアップをして、変更されていて、 色々なブログサイトで紹介されているどれも、陳腐化していたので、現時点での最新版の書き方を備忘録しておきたいと思います。 ちなみに、バージョンは、4.xですね。

Socket.IO情報

本家サイト https://socket.io/ サンプルコード https://socket.io/docs/v4/

備忘録コード

http設定 const port = 8000 const { Server } = require("socket.io"); const { createServer } = require("http") const httpServer = createServer() const io = new Server(httpServer , {}); io.on('connection' , connection) httpServer.listen(port) https設定 const setting = { port : 8000, domain : 'example.com', ssl : { cert : 'certファイルのパス', key : 'keyファイルのパス' } } const fs = require('fs') const { Server } = require("socket.io"); const { createServer } = require("https") const cert = setting.ssl.cert.replace('{{domain}}' , setting.domain) const key = setting.ssl.key.replace('{{domain}}' , setting.domain) console.log(cert,key) const httpsServer = createServer({ cert : fs.readFileSync(cert), key : fs.readFileSync(key), }) const io = new Server(httpsServer); io.on('connection' , connection) httpsServer.listen(setting.port)

ポイント解説

webrtcなどで使う場合は、httpsアクセスが必須なので、httpとhttpsの両方を書き込んでおきましたが、Let's Encryptと組み合わせてカンタンに設置できるので、 自分の場合は、このコードを1つの自分ライブラリにして使うようにしています。 httpsのsettingを別ファイルのjson形式にして、読み込みをする方式にしておけば、環境に応じてsetting.jsonファイルだけを更新すればいいので、 開発環境と本番環境などの切り替えも便利にできますよ。 構築時に、古い書き方でエラー頻発して困ったので、自分の為の備忘録として、このブログを残しておきたいと思います。 ガンバレ、オレ!
SNS
Groups
  • テクノロジー
  • ビジネス
  • 日記
  • 映画
  • マーケティング
  • 学習
  • モノ作り
  • ジョーク
Tags
  • #記録思考術
  • #Web制作テクニック
  • #エンジニアレベル判定
  • #プログラミング学習
  • #Favorite
  • #マインド
  • #独自学習法
  • #Nodejs
  • #スキルアップ
  • #マイペース
  • #妄想
  • #ルーティン
  • #Can I
  • #コミュニケーション
  • #動画制作
  • #ターミナル
  • #アイデア
  • #データベース
  • #トラブルシューティング
  • #プログラミングレベルアップ
  • ...
関連記事