ホームページ ウェブフロントエンド jsチュートリアル Socket.io を使用してリアルタイム チャット アプリケーションを構築する方法

Socket.io を使用してリアルタイム チャット アプリケーションを構築する方法

Nov 26, 2024 pm 08:40 PM

How to Build a Real-Time Chat Application Using Socket.io

このチュートリアルでは、Socket.io と Node.js および Express を使用してリアルタイム チャット アプリケーションを構築するプロセスを説明します。これは、Web アプリケーションでリアルタイム通信がどのように機能するかを実践的に理解できる初心者向けのガイドです。 Socket.io を使用してサーバーをセットアップし、フロントエンド インターフェイスを作成し、クライアントとサーバー間の通信を確立する方法を説明します。

何を学ぶか

  • Socket.io とは何か、そしてその仕組み
  • 基本的な Node.js サーバーのセットアップ
  • リアルタイム通信のための Socket.io の統合
  • HTML と JavaScript を使用してフロントエンドを構築する
  • リアルタイムでメッセージを送受信する

前提条件

始める前に、以下がインストールされていることを確認してください:

  • Node.js: ここからダウンロードできます。
  • npm (ノード パッケージ マネージャー): これは Node.js にバンドルされているため、Node.js がインストールされている場合は、すでに npm がインストールされています。
  • JavaScript、HTML、CSS の基本的な理解も必要です。

ステップ 1: プロジェクトをセットアップする

新しいプロジェクトを設定することから始めましょう。

  • プロジェクト用に新しいディレクトリを作成し、そこに移動します:

mkdir リアルタイムチャット
cd リアルタイム チャット

  • 新しい Node.js プロジェクトを初期化します:

npm init -y

  • 必要な依存関係をインストールします。サーバーには Express が必要で、リアルタイム通信には Socket.io が必要です。

npm install Expressソケット.io

ステップ 2: バックエンドをセットアップする (Node.js および Express)

server.js という新しいファイルを作成します。このファイルにはバックエンド コードが含まれます。

  • server.js を作成し、次のコードを追加して、Socket.io を使用して基本的な Express サーバーをセットアップします。
const express = require('express');
const http = require('http');
const socketIo = require('socket.io');

// Set up the app
const app = express();
const server = http.createServer(app);
const io = socketIo(server);  // Initialize Socket.io

// Serve static files (for front-end)
app.use(express.static('public'));

// Listen for incoming socket connections
io.on('connection', (socket) => {
    console.log('A user connected');

    // Listen for messages from clients
    socket.on('chat message', (msg) => {
        // Emit the message to all connected clients
        io.emit('chat message', msg);
    });

    // Handle disconnection
    socket.on('disconnect', () => {
        console.log('A user disconnected');
    });
});

// Start the server
const PORT = process.env.PORT || 3000;
server.listen(PORT, () => {
    console.log(`Server is running on http://localhost:${PORT}`);
});

ログイン後にコピー

説明:

  • 私は Express を使用して静的ファイル (フロントエンド) を提供します。
  • Socket.io が初期化され、受信接続を待機します。
  • ユーザーが「チャット メッセージ」経由でメッセージを送信すると、そのメッセージは io.emit() を使用して接続されているすべてのクライアントにブロードキャストされます。
  • ユーザーが切断すると、サーバーはメッセージを記録します。

ステップ 3: フロントエンドをセットアップする (HTML および JavaScript)

次に、ユーザーがメッセージを送受信できるシンプルなフロントエンドを作成します。

  • プロジェクト ディレクトリに public という名前のフォルダーを作成します。これにはフロントエンド ファイルが保持されます。
  • パブリック フォルダー内に、index.html ファイルを作成します。これがチャットインターフェイスになります。
<!DOCTYPE html>
<html lang="ja">

    <メタ文字セット="UTF-8">
    <meta name="viewport" content="width=device-width、initial-scale=1.0">
    <title>リアルタイム チャット</title>
    
        body { フォントファミリー: Arial、サンセリフ; }
        ul { リストスタイルタイプ: なし;パディング: 0; }
        li { パディング: 8px;マージン: 5px 0;背景色: #f1f1f1; }
        input[type="text"] {幅: 300px;パディング: 10px;マージン: 10px 0; }
        ボタン { パディング: 10px; }
    </スタイル>
</head>

    <h1>リアルタイム チャット アプリケーション</h1>
    
ログイン後にコピー

    説明:

    • チャット インターフェイスには、メッセージを入力するための入力フィールドとメッセージを送信するためのボタンが含まれています。
    • Socket.io のクライアント ライブラリを使用してサーバーとの接続を確立します。
    • メッセージが送信されると、チャット メッセージ イベントを介して送信されます。
    • 受信メッセージは
        リスト要素に表示されます。

    ステップ 4: アプリケーションを実行する

    すべてのセットアップが完了したので、アプリケーションを実行してみましょう。

    • サーバーを起動します:

    ノードサーバー.js

    • ブラウザを開いて http://localhost:3000 に移動します。チャット インターフェイスが表示されるはずです。

    • 複数のタブまたは異なるブラウザで同じ URL を開いて、リアルタイム通信をテストします。 1 つのタブでメッセージを送信すると、他のすべてのタブにリアルタイムでメッセージが表示されます。

    ステップ 5: 結論

    おめでとうございます! Socket.io を使用してリアルタイム チャット アプリケーションを構築することに成功しました。このアプリケーションを使用すると、ユーザーはリアルタイムで相互に通信できるようになります。これは、多くの最新の Web アプリケーションにとって強力な機能です。これに基づいて、ユーザー認証、プライベート メッセージ、チャット ルームなどの機能を追加できるようになりました。

    次は何ですか?

    • ユーザー認証を追加して、ユーザーがチャットする前にサインインできるようにします。
    • チャット メッセージを MongoDB などのデータベースに保存して永続化します。
    • Bootstrap や Tailwind CSS などの CSS フレームワークを使用して UI を強化します。

    ニーズに合わせてプロジェクトを自由に変更し、ルームや名前空間などの他の Socket.io 機能を試してみてください!

    コーディングを楽しんでください!

以上がSocket.io を使用してリアルタイム チャット アプリケーションを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptの文字列文字を交換します JavaScriptの文字列文字を交換します Mar 11, 2025 am 12:07 AM

JavaScriptの文字列文字を交換します

jQuery日付が有効かどうかを確認します jQuery日付が有効かどうかを確認します Mar 01, 2025 am 08:51 AM

jQuery日付が有効かどうかを確認します

jQueryは要素のパディング/マージンを取得します jQueryは要素のパディング/マージンを取得します Mar 01, 2025 am 08:53 AM

jQueryは要素のパディング/マージンを取得します

10 jQuery Accordionsタブ 10 jQuery Accordionsタブ Mar 01, 2025 am 01:34 AM

10 jQuery Accordionsタブ

10 jqueryプラグインをチェックする価値があります 10 jqueryプラグインをチェックする価値があります Mar 01, 2025 am 01:29 AM

10 jqueryプラグインをチェックする価値があります

ノードとHTTPコンソールを使用したHTTPデバッグ ノードとHTTPコンソールを使用したHTTPデバッグ Mar 01, 2025 am 01:37 AM

ノードとHTTPコンソールを使用したHTTPデバッグ

カスタムGoogle検索APIセットアップチュートリアル カスタムGoogle検索APIセットアップチュートリアル Mar 04, 2025 am 01:06 AM

カスタムGoogle検索APIセットアップチュートリアル

jQueryはscrollbarをdivに追加します jQueryはscrollbarをdivに追加します Mar 01, 2025 am 01:30 AM

jQueryはscrollbarをdivに追加します

See all articles