Node.jsを使用してインスタントメッセージング機能を実装するWebプロジェクト

PHPz
リリース: 2023-11-08 11:38:05
オリジナル
669 人が閲覧しました

Node.jsを使用してインスタントメッセージング機能を実装するWebプロジェクト

インターネットの急速な発展に伴い、インスタント メッセージング機能はますます一般的になってきています。ソーシャル ネットワーク、電子商取引、オンライン ゲームなど、ユーザー エクスペリエンスと効率を向上させるためにインスタント メッセージング機能を実装する必要があります。 Node.js は、同時リクエストに適した効率的な JavaScript 実行環境として、インスタント メッセージング機能を備えた Web アプリケーションを迅速に構築するための優れたサポートを提供します。

この記事では、Node.js を使用して Web ベースのインスタント メッセージング機能を実装する方法を詳しく紹介します。このプロジェクトは WebSocket プロトコルに基づいており、従来のポーリングやロング ポーリング テクノロジは使用しません。 WebSocket テクノロジの利点は、サーバーとクライアントの間でリアルタイムの双方向通信を実現できることと、クロスドメイン リクエストのサポートも充実していることです。

  1. テクノロジーの選択

このインスタント メッセージング機能を開発するには、次のテクノロジーを使用します:

  • Node.js: Node を使用します。 .js はサーバー側の動作環境として機能します。
  • Express: Express フレームワークを使用して Web アプリケーションを開発します。
  • Socket.IO: Socket.IO は、WebSocket とポーリングに基づくクロスプラットフォームのリアルタイム通信エンジンであり、さまざまなブラウザーやモバイル デバイスと互換性があります。
  • MongoDB: データ ストレージとして MongoDB を使用します。
  • ブートストラップ: ブートストラップ フレームワークを使用してユーザー インターフェイスを構築します。
  1. プロジェクト フレームワークの構築

最初にプロジェクト フォルダーを作成し、ディレクトリに入り、次のコマンドを実行します。上記のコマンドは、新しい Node.js プロジェクトを作成し、必要な依存関係をインストールします。

最初のステップは、プロジェクトのルート ディレクトリに新しい JavaScript ファイルを作成することです。この場合、ファイルにserver.jsという名前を付けました。次に、以下のコードをserver.jsファイルにコピーします。

npm init
npm install express socket.io mongodb --save
ログイン後にコピー

上記のコードは、Express フレームワークを導入し、HTTP サーバー オブジェクトを作成し、ポート 3000 をリッスンします。これには、後で説明する Socket.IO の初期化と起動が含まれます。同時に、express.static() を使用してプログラムの静的フォルダーへのアクセスを設定します。

MongoDB の構成
  1. 次のコマンドを実行して MongoDB をインストールします。
const express = require('express');
const app = express();
const http = require('http').Server(app);

// TODO:编写代码来启动Socket.IO服务

app.use(express.static('public'));

http.listen(3000, () => {
  console.log('listening on *:3000');
});
ログイン後にコピー

プロジェクトのルート ディレクトリの JS ファイルに mongo.js という名前の新しいファイルを作成します。次に、次のコードを追加して MongoDB をセットアップして実行します。

npm install mongodb --save
ログイン後にコピー

このファイルでは、MongoDB によって公式に提供されている MongoClient オブジェクトを使用して MongoDB サーバーに接続します。 MongoClient は URL を使用して mongod インスタンスに接続し、dbName をパラメータとして操作を実行します。 mongo.js を実行した後、「MongoDB サーバーに正常に接続されました」のようなメッセージが表示されたら、MongoDB に正常に接続されています。

Socket.IO サービスを開始します
  1. Socket.IO サービスを開始するには、今、server.js ファイルに次のコードを追加します。 ##
    const MongoClient = require('mongodb').MongoClient;
    
    // Connection URL
    const url = 'mongodb://localhost:27017';
    // Database Name
    const dbName = 'chatDB';
    // Use connect method to connect to the server
    MongoClient.connect(url, function (err, client) {
      console.log('Connected successfully to mongodb server');
    
      const db = client.db(dbName);
      client.close();
    });
    ログイン後にコピー
上記のコードは、socket.io モジュールからインスタンスをインポートして作成し、接続イベントを設定します。接続イベントは、クライアントが Socket.IO サーバーに接続するとトリガーされます。 Socket.IO サーバーに接続しているユーザーの数をサーバー コンソールで確認できるように、接続イベントにログ出力を追加しました。

クライアントの作成

  1. 次に、クライアントの作成を開始します。パブリック フォルダーに、index.html というファイルを作成し、次のコードを追加します。
  2. const express = require('express');
    const app = express();
    const http = require('http').Server(app);
    
    const io = require('socket.io')(http);
    io.on('connection', function (socket) {
      console.log('a user connected');
      socket.on('disconnect', function () {
        console.log('user disconnected');
      });
    });
    
    app.use(express.static('public'));
    
    http.listen(3000, () => {
      console.log('listening on *:3000');
    });
    ログイン後にコピー
上記のコードでは、インスタント メッセージを送受信するための単純なユーザー インターフェイスを作成しました。ユーザー インターフェイスは主に 3 つの部分で構成されます:

チャット メッセージを表示するために使用される

要素。

    ユーザーがメッセージを送信するために使用できるフォーム。
  • 2 つの
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!