1章WebSocketを使ったチャットアプリケーション

ハイパフォーマンスで並行処理も得意とするGoは、サーバー側のアプリケーションやツールの作成に適しています。そのようなソフトウェアは、Webでまさに必要とされているものです。今日では、Webに対応していないガジェットを見つけるのは困難なほどです。また、Webを利用すれば1つのアプリケーションでほぼすべてのプラットフォームやデバイスに対応させることも可能です。

本書で紹介する最初のプロジェクトでは、Webベースのチャットアプリケーションを作成します。ここでは、複数のユーザーがブラウザ上でリアルタイムに会話ができます。一般的なGoアプリケーションやGoの標準ライブラリはパッケージという単位で構成されており、各パッケージはそれぞれのフォルダーに配置されます。まずはnet/httpパッケージを使ったシンプルなWebサーバーを作成します。このサーバーがHTMLファイルを提供します。そして、WebSocketを利用してメッセージをやり取りできるようにします。

C#やJavaあるいはNode.jsなどでは、すべてのクライアントが同期された状態を保つためには複雑なスレッドのコードや巧妙なロックの使いこなしが求められます。一方Goでは、チャネルなどの並行処理向けのしくみが言語に組み込まれており、実装が非常に容易です。

この章では次のような事柄について学びます。

  • net/httpパッケージを使い、HTTPリクエストに応答します。
  • テンプレートを使ったコンテンツをクライアントに提供します。
  • Goのhttp.Handler型のインタフェースに適合させます。
  • Goのgoroutineを使い、アプリケーションが複数の作業を同時に行えるようにします。

Get Go言語によるWebアプリケーション開発 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.