~ポーリングとブロードキャストの違いを理解し、使いこなす~

アプリの依頼が来た。。これ、ポーリングでいいの?ブロードキャスト使った方がいいの?と悩んだあなた、その答えはここにあります。

研修成果

近年のSNSの普及は、成年層にとどまらず、ユーザーの年齢はどんどん広がっています。今や、子供達もおじいちゃんおばあちゃんも、SNSを使ってコミュニケーションをするのが当たり前になってきました。

リアルタイムで行うチャットを実装する方法は大きく分けて二つあり、それぞれにメリット、デメリットがあります。ポーリングと呼ばれる方法は手軽ですが、限界があり、ブロードキャストと呼ばれる方法は、制限は少ないですが、少々敷居が高い実装法です。

本研修では、この二つの違いを理解し、要件によって、どちらが適しているかを判断するための知識を得て、さらにどう実装するのかの、実践的なスキルを短期間で習得することを目指します。

ちょっとしたアプリ開発にも、実装することが大変多くなったリアルタイムチャットの実装を、この機会に極めてみませんか?その知識とスキルは、チャット機能だけで無く、例えばあるイベントをトリガーとしたログインユーザーの一部や全体に処理を行いたい場合などに、応用範囲が無限に広がる、あなたの大切なスキルになることでしょう。

■ この講座で得られること
✅ Polling / WebSocket / Broadcastの違いと選択判断ができる
✅ Expressとfetchを使った簡易チャットが自作できるようになる
✅ Socket.IOを使ったイベント駆動・Rooms構成が理解できる
✅ 実運用に向けた構成設計力(スケーラビリティ・負荷分散の視点)が身につく

達成目標

  • リアルタイム通信の基本概念を理解し、実装の選択肢を自信を持って選べるようになる。
  • 「ポーリング」「WebSocket」「ブロードキャスト」を、チャットアプリの構築で体感的に理解する。
  • リアルタイム性の設計と運用の勘所を掴む。

対象

  • LINEに代表されるリアルタイムチャットをjsで実装する代表的な方法二種を身に付けたい方々
  • ポーリングとブロードキャストの違いを理解し、最適な選択肢を選べるようになりたい方々

前提:

1.PHP8.1以後とLaravel9の開発環境をあらかじめインストールしてご参加ください。(バックエンドとして)

2.お使いのOS、Docker、VirtualBox等仮想環境とエディタは、使い慣れた物をそのままお使い頂いて結構です。

3.Node.jsをあらかじめ開発環境にインストールしてご参加下さい。

node.js

※快適に受講するためにデュアルモニターの使用をお奨めします。

定員:12名様

担当講師:松田睦

マシン語によるゲーム開発時代から40年以上プログラムに関わってきました。Z80、8086系アセンブリ言語とC言語によるDOSやRPGイベント管理用独自言語、画像圧縮展開ツールなどの開発からスタートし、SE及びPG要員として、要件定義から設計、PG、テスト、保守、進捗管理等、通しで幾度も経験しています。 言語はC、C++、Java、PHP、C#、Python、ASP(VBA)等。 Java、PHPのフレームワーク各種。 DBはオラクル、PostgresSQL、MySQL、Microsoft SQL Server等。

実績:オンラインスクールにてJava、PHP、Pythonのメンターを五年、新入社員向け研修講師を三年勤め、文系出身の表現力を生かしたわかりやすい例えを用いた講義は、各所から好評を頂いています。

1回目:2026年8月27日(木)~28日(金)

カリキュラム

1日目(13:00~17:00)

【カリキュラム概要】
リアルタイム通信の歴史と現在:Ajax → WebSocket → サーバー・プッシュ
ポーリング・ロングポーリングの原理と限界
REST通信との違い/スケーラビリティの課題/キャッシュ制御

【演習】
Express + fetch() でシンプルなポーリングチャットを作ってみる
ロードなしでメッセージを取得する(チャット更新ロジック)

質問タイム

2日目(13:00~17:00)

【カリキュラム概要】
WebSocketの構造と双方向通信の基本/HTTPとの違い
Socket.IOによるイベント駆動チャットの構築フロー
roadcastのしくみとRooms/接続状態・切断のハンドリング

【演習】
Node.js + Socket.IO でリアルタイムチャットを構築
複数ルームに対応したチャットアプリの実装(中級編)

発表、質問タイム

※ご希望があれば
WebSocketとHTTPの違いを図解したハンドアウト
比較表:ポーリング/WebSocket/SSE(Server-Sent Events)