1. 背景1. フロントエンドはvue + vuex + socket.io-clientを使用します
2. バックエンドはnode + express + socketioを使用する 1. ノード開発環境を構築する
必要な依存関係をインストールする
2. socket.ioの使用法の概要1. イベントの送信 socket.emit('イベント名', データ => { // データは送信されるデータであり、ブール値、文字列、数値、オブジェクトなどになります。}) 2. イベントのリスニング socket.on('送信時のイベント名', data => { //イベントによって送信されたデータ}) 3. イベントの放送 // 他のユーザーに送信する(自分には送信しない) socket.broadcast.emit('イベント名', データ => { // データは送信されるデータであり、ブール値、文字列、数値、オブジェクトなどになります。}) 3. 開発プロセス1. フロントエンドにsocket.jsファイルを作成し、ソケット関連のイベントを受信します。 // socket.io-client をインポートする 'socket.io-client' から io をインポートします // リンクを作成する const socket = io() // リスニング socket.on('connect', () => { console.log('サーバーに正常に接続しました!!') }) > ==============中間部分は、バックエンドから送信されたソケットイベントをリッスンするために使用されます。例: ===================== // 部屋に入る socket.on('enter_room', (data) => { // 必要なデータはストレージに保存できます localStorage.setItem('counts', JSON.stringify(データ)) store.commit('setData', JSON.parse(localStorage.getItem('data'))) }) // サービスの接続切断を処理する socket.on('disconnect', () => { console.log('切断') }) 2. バックエンド関連コード const app = require('express')() const http = require('http').Server(app) var io = require('socket.io')(http) onlineUsers = {} とします ユーザーに = [] させる onlineCounts = 0 とします io.on('接続', ソケット => { // ユーザーがゲームに参加する socket.on('enter', (data) => // ユーザー情報を追加 const sid = socket.id ソケット名 = データ名 // 新しいユーザーを追加する if(!onlineUsers.hasOwnProperty(data.name)) { onlineUsers[データ名] = sid オンラインカウント++ } if (!users.length) { ユーザー.push({ 名前: onlineUsers[sid] }) } // 現在のクライアント数 let clientCount = io.sockets.server.engine.clientsCount // ユーザーリストを現在のユーザーに送信します (コードのフロントエンド監視 enter_room 部分に対応) io.emit('enter_room', { 役割: データ.役割、 ユーザー、 オンラインカウント }) // 新しいユーザーを他のユーザーに送信する(自分自身には送信しない) socket.broadcast.emit('user_enter', データ名) }) }) // バックエンドはリスニングポートを開き、フロントエンドはバックエンドサーバーにプロキシするように proxyTable を構成して、フロントエンドとバックエンドのデータを接続できるようにします http.listen(port, () => { console.log('バックエンド サーバーが正常に起動しました!!!') }) 4. リリースと発売1. フロントエンド: 1) http-server をインストールし、サーバーに接続してサーバーに入り、リモート ウェアハウスのフロントエンド コードを取得します (通常はサーバーの www ディレクトリから取得されます)。コードを複製していない場合は、ダウンロードする前にサーバー上で公開キーを設定する必要があります。 公開鍵の設定
公開鍵を生成したら、公開鍵が生成されたファイル ディレクトリに移動し、コード ホスティング プラットフォームにコピーします。その後、公開鍵を追加してコードを複製できます。 2) フロントエンドコードをパッケージ化し、distファイルを生成する
3) distと入力し、フロントエンドを起動するコマンドを実行します。
4) フロントエンドアクセス、サーバーアドレス + ポート番号 2. バックエンド: 1) フロントエンドと同様に (http サーバーをインストールする必要はありません)、サーバーに入った後、リモート ウェアハウスからフロントエンド コードをプルします (通常はサーバーの www ディレクトリからプルします)。コードを複製していない場合は、ダウンロードする前にサーバー上で公開キーを構成する必要があります。
socket.io がオンラインにリリースされると、フロントエンドは socket.io プロキシ アドレス ポートをバックエンド ポートに変更する必要があります。変更しないと 404 が報告されます。変更場所は次のとおりです (ここではバックエンド ポートは 3000 です) 2. Nginxはsocket.ioのプロキシ転送アドレスを変更する必要があります。そうしないと404も報告されます。 補足1.pm2 共通コマンド
2. コマンドラインでのnginxの関連命令
この時点で、上記の手順に従うことで、ソケット関連の開発を何でも実行できます。ぜひ試してみてください。ご質問があれば、メッセージを残してください。 これで、vue+node+socketio による複数人インタラクションの実現と、そのプロセス全体のオンライン公開に関するこの記事は終了です。vue socketio による複数人インタラクションの実現に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Spring Cloud での Docker デプロイメントに jib を使用する詳細な手順
今日、docker で redis 環境を構築していたところ、yum がリソースを取得できず、インタ...
PHP7 がリリースされてからかなり時間が経ちますが、パフォーマンスが大幅に向上したことはよく知られ...
<br />長年の専門的なアートデザイン教育を通じて「美とは何か」を学びましたが、「美を...
conda アップデート conda pip で tf-nightly-gpu-2.0-previ...
目次序文方法1: 高コントラスト方法2: getBoundingClientRect() APIを使...
この記事では、カレンダー効果を実現するためのBootstrap+Jqueryの具体的なコードを参考ま...
この記事では、例を使用して MySQL トリガーの作成と使用について説明します。ご参考までに、詳細は...
目次基本的な指示1. 現在のマシンのコンテナステータスを確認する2. イメージをダウンロードまたは取...
Redisの本やSpring Cloud Alibabaの本を執筆した際に、一部の分散コンポーネント...
reactプロジェクトで非常に一般的なシナリオ: const [watchValue、setWatc...
SEO とセキュリティを考慮して、301 リダイレクトが必要です。以下の一般的な処理には Nginx...
この記事では、MySQL 8.0.11圧縮版のインストールチュートリアルを参考までに紹介します。具体...
コードをコピーコードは次のとおりです。 <div contenteditable="...
mysql5.6.28のインストールと設定方法1. 基本的なシステム情報を確認し、yumでインストー...
MySQLはトリガーを使用してデータベース内のテーブルの行制限を解決します。詳細な説明と例最近のプロ...