タイトルVIの_expressの枠組みの中で、オンラインチャット機能についてVUE +マングース+ Node.jsのプロジェクトの概要socket.io使用プラグイン(論文を準備)

I.はじめに                                                                             

プロジェクトは、オンラインチャット機能を実現socket.ioプロジェクト内の注目点についてのテキストレコードを使用する場合1は、最近開発段階の前と後に分離します。

                          1、背景の一部を構築するためのノード

                                  セクションI:socket.ioサーバ接続ポート                                    

                                  セクションII:オペレーティングsocket.io方式のサービス終了を定義し、フロントエンドユーザーのチャットログを監視

                            2、vue.js受信部

第二に、主要な知識                                                                      

1、背景の一部を構築するためのノード。

 セクションI:socket.ioサーバ接続ポート

     (1)plug-socket.ioをダウンロードしてインストールします。      

NPM私--save socket.io

 

        (2)フォルダをパッケージングする方法ウィジェットsocket.ioう単一演算ノードを発現以下のフレームワークを使用して。

        binに接続Socket.io

         

 

 

 

        (3)最初のステップは:socket.ioを使用してサーバーを監視します

socketio.jsサーバーにカプセル化GetSocketioは方法をリッスン:

VaRの socketio = {}
 VARの socket_io =必要とする('socket.io' 

// 获取IO 
socketio.getSocketio = 機能(サーバ){
    VAR IO = socket_io.listen(サーバ)

   io.sockets.on('接続'、ソケット= > { 
       にconsole.log('连接成功' 
       CONST socketId = socket.id 
  } 

}

 

ビン/ WWWフォルダのダウンロード監視サーバでだけで定義され、メソッドを呼び出します

 

 

サービスsocket.io操作方法、およびユーザーのチャットログを画定する第2の端部は、フロントエンドを監視します

       (1)新しいsocketIdオブジェクトを作成し、ランダムにユーザがログイン中のユーザ毎に固有のsocketidが割り当てられます。

 

=必要LET(エクスプレス'エクスプレス' ;)

マングースを聞かせて必要(= 'マングース' ); 

module.exportsは = 新しい新mongoose.Schema({ 
    socketid:文字列を、// ランダムsocketid割り当てられた 
    ユーザー名を:文字列   // ログインユーザー名 
});

 

          

         (2)以下のフォルダにsocketIdを保存するユーザーのための包装方法をsocketid

= IdtoidはLET(必要'../Models/Idtoid' 

module.exportsは = クラスSocketHandlerの{
     静的非同期savaUserSocketId(ユーザ名、socketID){
         // ユーザIDを保存し、socketid 
        のawait Idtoid.findOne({ 
            :ユーザ名、ユーザ名を
        })。その後、((RS) => {
             IF(RS){!// 現在のユーザーが新しい上に存在しない場合は
                、新たな新Idtoid({ 
                    ユーザー名:ユーザー名、
                    socketid:socketID 
                。})保存()を(()。 => { 

                } )
            } {
                Idtoid.update({ 
                    ユーザー名:ユーザー名
                }、{ 
                    socketid:socketId 
                })。次に、(() => { 

                })
            } 
        })
    } 
}

 

         (3)ロジックモニタのログインを実装し、チャットを監視

/ * 
、サーバーのリスニング得るために、パッケージのsocket.io 
* / 
聞かせてIdtoidが必要=を(「../Models/Idtoid」
せSocketHandlerのは、(必要= 」./socketioHander.js'); // ソケットが達成されます論理
VAR SocketIO = {}
 VAR必要=(socket_io 'Socket.IO' 

// 取得IO 
socketio.getSocketio = 機能(サーバ){
    VAR IO = socket_io.listen(サーバ)

   io.sockets.on('接続'、ソケット=> { 
       にconsole.log('成功した接続' 
       CONST socketID =socket.id 

       // 各ログインユーザsocketidのに割り当てられたモニターのユーザーのログイン、 
       socket.on('ログイン'、(ユーザー名)=> { 
           はconsole.log('ユーザーがログイン' //は、saveメソッドを呼び出すsocketid 
           SocketHandlerのを。 savaUserSocketId(ユーザ名、socketID)
       })

       // 監視ユーザチャット、データは、フロントエンドデータから送信される 
       socket.on('チャット'、(データ)=> { 
           にconsole.log('ユーザがチャット、友人を開始' 

      にconsole.log (データ)
        Idtoid.findOne({ 
            ユーザー名:data.to_user 
        })。次に、((RS) => {
           // 人に対応するメッセージ
            io.to(rs.socketid).emit('receiveMsg' 、{ 
                from_user:data.from_user、
                メッセージ:data.message、
                時間:data.time、
                avater:data.avater、
                _id:data._id 
            })
        })
       } )
   })
} 

module.exportsは = socketio

 

 

 

 

 

2、vue.js受信部

          (1)index.htmlファイルに組み込まれ、使用

 

 

(2)ユーザログオントリガー

 

 

(3)トリガささやき

 

おすすめ

転載: www.cnblogs.com/xxm980617/p/11506037.html