ホームページ ウェブフロントエンド Vue.js Vueを使ってオンラインチャット機能を実装するにはどうすればよいですか?

Vueを使ってオンラインチャット機能を実装するにはどうすればよいですか?

Jun 25, 2023 am 08:30 AM
実装 vueフレームワーク オンラインチャット

インターネットの継続的な発展に伴い、チャット機能は徐々に多くの Web サイトやアプリケーションに必要な機能の 1 つになってきました。 Web サイトにオンライン チャット機能を追加したい場合は、Vue が良い選択肢となります。

Vue は、使いやすく、柔軟で強力なユーザー インターフェイスを構築するための進歩的なフレームワークです。今回はVueを使ってオンラインチャット機能を実装する方法を紹介しますので、ご参考になれば幸いです。

ステップ 1: Vue プロジェクトを作成する

まず、チャット アプリケーションの開発を開始できるように、新しい Vue プロジェクトを作成する必要があります。 Vue CLI を使用して、新しい Vue プロジェクトを作成できます。

ターミナルを開いて次のコマンドを入力します:

vue create chat-app
ログイン後にコピー

これにより、chat-app という名前の新しい Vue プロジェクトが作成され、必要な依存関係が自動的にインストールされます。完了したら、プロジェクト ディレクトリに入り、開発サーバーを起動します。

cd chat-app
npm run serve
ログイン後にコピー

これで、ブラウザで http://localhost:8080 にアクセスでき、ようこそインターフェイスが表示されるはずです。

ステップ 2: チャット インターフェイスを構築する

次に、単純なチャット インターフェイスを追加します。インターフェースの構築には、Materialize CSS フレームワークを使用します。

まず、プロジェクトのルート ディレクトリにある index.html ファイルの <head> タグに次のコードを追加します:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
ログイン後にコピー

次に、App.vue コンポーネントで、次のコードを <template> タグに追加します。

<div class="container">
  <div class="row">
    <div class="col s12">
      <ul class="collection">
        <li class="collection-item avatar">
          <i class="material-icons circle blue">person</i>
          <p class="title">John Doe</p>
          <p class="message">Hello</p>
        </li>
        <li class="collection-item avatar">
          <i class="material-icons circle green">person</i>
          <p class="title">Jane Doe</p>
          <p class="message">Hi</p>
        </li>
      </ul>
    </div>
  </div>
  <div class="row">
    <div class="input-field col s12">
      <input type="text" id="message">
      <label for="message">Message</label>
    </div>
  </div>
</div>
ログイン後にコピー

これにより、2 つのページがレンダリングされます。メッセージとテキスト入力ボックスを備えたチャット インターフェイス。

ステップ 3: チャット ロジックを追加する

次に、チャットで新しいメッセージを送信できるようにするロジックを追加する必要があります。 Socket.IO を使用してリアルタイム通信を処理します。

まず、Socket.IO をインストールする必要があります。ターミナルを使用して、次のコマンドを実行します:

npm install socket.io-client
ログイン後にコピー

次に、App.vue コンポーネントの <script> タグに次のコードを追加します。 #

import io from 'socket.io-client';

export default {
  name: 'App',
  data() {
    return {
      username: 'User',
      messages: [],
      message: '',
      socket: null,
    };
  },
  mounted() {
    this.socket = io('http://localhost:3000');

    this.socket.on('connect', () => {
      console.log('Connected to server');
    });

    this.socket.on('disconnect', () => {
      console.log('Disconnected from server');
    });

    this.socket.on('message', (data) => {
      this.messages.push(data);
    });
  },
  methods: {
    sendMessage() {
      if (this.message.trim() !== '') {
        const data = {
          username: this.username,
          message: this.message.trim(),
        };
        this.socket.emit('message', data);
        this.messages.push(data);
        this.message = '';
      }
    },
  },
};
ログイン後にコピー

このコード スニペットは、

socket という名前の Socket.IO クライアント インスタンスを作成し、それを使用してサーバーに接続します。クライアントがサーバーに正常に接続すると、connect イベントが発生します。同様に、クライアントがサーバーから切断されると、disconnect イベントもトリガーされます。

新しいメッセージを送信するための

sendMessage というメソッドも定義します。 sendMessage が呼び出されると、emit 関数を使用して新しいメッセージをサーバーに送信し、新しいメッセージ レコードをローカルに追加します。

最後に、以下に示すように、チャット入力ボックスの下の

input 要素で:

<input type="text" id="message" v-model="message" @keyup.enter="sendMessage">
ログイン後にコピー

v-model コマンドを使用して、 enter ボックスの値はコンポーネントの message データ プロパティにバインドされており、@keyup.enter を使用して Enter キーをリッスンするため、 sendMessage方法。

ステップ 4: サーバーを起動する

次に、リアルタイム通信を処理するサーバーを作成する必要もあります。 ExpressとSocket.IOを使って簡単なサーバーを構築していきます。

まず、ターミナルを使用して次のコマンドを実行して、必要な依存関係をインストールします:

npm install express socket.io
ログイン後にコピー

次に、プロジェクトのルート ディレクトリ new に

server.js という名前のファイルを作成します。ファイルを作成し、次のコードを追加します。

const express = require('express');
const app = express();
const server = require('http').Server(app);
const io = require('socket.io')(server);

const PORT = process.env.PORT || 3000;

let messages = [];

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

io.on('connection', (socket) => {
  console.log('User connected');

  socket.on('message', (data) => {
    messages.push(data);
    socket.broadcast.emit('message', data);
  });

  socket.on('disconnect', () => {
    console.log('User disconnected');
  });

  socket.emit('messages', messages);
});

server.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});
ログイン後にコピー

このコード スニペットは、

server という名前の Express アプリケーション インスタンスを作成し、http モジュール HTTP サーバーを使用してラップします。また、Socket.IO を使用して新しい Socket.IO サーバーを作成し、それを HTTP サーバーにバインドします。

すべてのチャット レコードを保存するために、

messages という名前の配列を定義します。新しいメッセージがサーバーに到着すると、それを messages 配列に追加し、broadcast.emit 関数を使用してすべてのクライアントにブロードキャストします。

最後に、サーバーの

listen 関数を呼び出して、クライアントからの接続リクエストの待機を開始します。

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

これで、アプリケーション全体の構築が完了しました。 2 つの異なるコマンド ライン ウィンドウからアプリケーションとサーバーを起動する必要があります。

最初のコマンド ライン ウィンドウで、次のコマンドを入力します。

npm run serve
ログイン後にコピー

これにより、Vue アプリケーションが起動し、ブラウザで開きます。

次に、別のコマンド ライン ウィンドウで次のコマンドを入力します。

node server.js
ログイン後にコピー
これにより、サーバーが起動し、クライアント接続リクエストのリッスンが開始されます。

これで、チャット インターフェイスに新しいメッセージを入力し、Enter キーを押して送信できます。新しいメッセージはインターフェイスに表示され、ユーザーのブラウザに定期的に送信されます。

結論

この記事では、Vue と Socket.IO を使用してリアルタイム チャット アプリケーションを構築する方法を学びました。 Vue プロジェクトのセットアップからチャット ロジックの追加、サーバーの起動までのプロセス全体をカバーします。この例が、Vue を使用してリアルタイム アプリケーションを構築する方法を理解するのに役立つことを願っています。

以上がVueを使ってオンラインチャット機能を実装するにはどうすればよいですか?の詳細内容です。詳細については、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)

Android でポーリングを実装するにはどうすればよいですか? Android でポーリングを実装するにはどうすればよいですか? Sep 21, 2023 pm 08:33 PM

Android のポーリングは、アプリケーションがサーバーまたはデータ ソースから定期的に情報を取得および更新できるようにする重要なテクノロジです。ポーリングを実装することで、開発者はリアルタイムのデータ同期を確保し、最新のコンテンツをユーザーに提供できます。これには、サーバーまたはデータ ソースに定期的にリクエストを送信し、最新の情報を取得することが含まれます。 Android は、ポーリングを効率的に完了するためのタイマー、スレッド、バックグラウンド サービスなどの複数のメカニズムを提供します。これにより、開発者はリモート データ ソースとの同期を維持する応答性の高い動的なアプリケーションを設計できるようになります。この記事では、Android でポーリングを実装する方法について説明します。この機能の実装に関連する重要な考慮事項と手順について説明します。ポーリング 更新を定期的にチェックし、サーバーまたはソースからデータを取得するプロセスは、Android ではポーリングと呼ばれます。合格

PHPで画像フィルター効果を実装する方法 PHPで画像フィルター効果を実装する方法 Sep 13, 2023 am 11:31 AM

PHP 画像フィルター効果を実装する方法には、特定のコード例が必要です はじめに: Web 開発のプロセスでは、画像フィルター効果は、画像の鮮やかさや視覚効果を高めるためによく使用されます。 PHP 言語には、さまざまな画像フィルター効果を実現するための一連の関数とメソッドが用意されています。この記事では、一般的に使用されるいくつかの画像フィルター効果とその実装方法を紹介し、具体的なコード例を示します。 1. 明るさの調整 明るさの調整は一般的な画像フィルター効果で、画像の明暗を変更できます。 PHP で imagefilte を使用する

C# で最短パス アルゴリズムを実装する方法 C# で最短パス アルゴリズムを実装する方法 Sep 19, 2023 am 11:34 AM

C# で最短パス アルゴリズムを実装する方法には、特定のコード サンプルが必要です。最短パス アルゴリズムはグラフ理論の重要なアルゴリズムであり、グラフ内の 2 つの頂点間の最短パスを見つけるために使用されます。この記事では、C# 言語を使用して 2 つの古典的な最短経路アルゴリズム、ダイクストラ アルゴリズムとベルマン フォード アルゴリズムを実装する方法を紹介します。ダイクストラのアルゴリズムは、広く使用されている単一ソースの最短パス アルゴリズムです。その基本的な考え方は、開始頂点から開始して、徐々に他のノードに拡張し、検出されたノードを更新することです。

PHPメール認証ログイン登録機能の実装方法と手順を紹介 PHPメール認証ログイン登録機能の実装方法と手順を紹介 Aug 18, 2023 pm 10:09 PM

PHPメール認証ログイン登録機能の実装方法と手順を紹介 インターネットの急速な発展に伴い、ユーザー登録やログイン機能はほぼ全てのWebサイトに必要な機能の一つとなっています。ユーザーのセキュリティを確保し、スパム登録を減らすために、多くの Web サイトではユーザー登録とログインに電子メール認証を使用しています。この記事では、PHP を使用してメール認証のログインおよび登録機能を実装する方法とコード例を紹介します。データベースをセットアップする まず、ユーザー情報を保存するデータベースをセットアップする必要があります。 MySQL または

JavaScriptでバブルプロンプト機能を実装するにはどうすればよいですか? JavaScriptでバブルプロンプト機能を実装するにはどうすればよいですか? Oct 27, 2023 pm 03:25 PM

JavaScriptでバブルプロンプト機能を実装するにはどうすればよいですか?バブル プロンプト機能は、ポップアップ プロンプト ボックスとも呼ばれ、成功した操作のフィードバックの表示や、要素の上にマウスを置いたときに関連情報を表示するなど、Web ページ上に一時的なプロンプト情報を表示するために使用できます。 。この記事では、JavaScript を使用してバブル プロンプト機能を実装する方法を学び、いくつかの具体的なコード例を示します。ステップ 1: HTML 構造 まず、HTML でバブルプロンプトを表示するためのコンテナを追加する必要があります。

JavaScriptで画像拡大鏡機能を実装するにはどうすればよいですか? JavaScriptで画像拡大鏡機能を実装するにはどうすればよいですか? Oct 19, 2023 am 08:33 AM

JavaScript は画像拡大鏡機能をどのように実装しますか? Web デザインでは、商品写真やアートワークの詳細などを表示するために、画像拡大鏡機能がよく使用されます。画像の上にマウスを置くと画像が拡大され、詳細をよりよく観察できるようになります。この記事では、JavaScript を使用してこの機能を実現する方法とコード例を紹介します。まずHTMLに拡大効果を持たせたpicture要素を用意する必要があります。たとえば、次の HTML 構造では、大きな画像を

C++における多重継承の実装方法と例 C++における多重継承の実装方法と例 Aug 22, 2023 am 09:27 AM

1. C++ 多重継承の概要 C++ では、多重継承とは、1 つのクラスが複数のクラスの特性を継承できることを意味します。この方法では、さまざまなクラスの特性と動作を 1 つのクラスに結合できるため、より柔軟で複雑な機能を備えた新しいクラスを作成できます。 C++ の多重継承方式は Java や C# など他のオブジェクト指向プログラミング言語とは異なり、C++ では 1 つのクラスが同時に複数のクラスを継承できますが、Java や C# では単一継承しか実装できません。多重継承がより強力なプログラミング機能を備えているからこそ、C++ プログラミングでは多重継承が利用されるようになりました。

Laravel で許可ベースの多言語サポートを実装する方法 Laravel で許可ベースの多言語サポートを実装する方法 Nov 02, 2023 am 08:22 AM

Laravel で許可ベースの多言語サポートを実装する方法 はじめに: 最近の Web サイトやアプリケーションでは、多言語サポートは非​​常に一般的な要件です。一部の複雑なシステムでは、ユーザーの権限に基づいて異なる言語の翻訳を動的に表示する必要がある場合もあります。 Laravel は、開発プロセスを簡素化する多くの強力な機能を提供する非常に人気のある PHP フレームワークです。この記事では、Laravel でパーミッションベースの多言語サポートを実装する方法を紹介し、具体的なコード例を示します。ステップ 1: 最初に多言語サポートを構成する

See all articles