Socket.io長い接続ベースの通信プロトコル - インタラクティブモジュール

Socket.io長い接続ベースの通信プロトコル - インタラクティブモジュール

1、フロントエンドのプロジェクトは、クライアントのインストールモジュールを反応させます


NPM / cnpm I socket.ioクライアント-S

2、サービス

現在ソリューション:のサービスベースのチャットドームノードとして起動し
、後者の解決策:サービスのJavaベースのバージョンの開発をsocket.io

3、パッケージ

  • 3.1 socket.js、ソケットcommon.js

  • コンテンツ3.2ソケットcommon.js


    主な変数名を定義し
    、輸出のconst C_IMEVT_COMMON $ DATAを= '2 ';

    /
    クライアントによって発行-プロトコルタイプ:(!注意:このイベントは、サーバーtype.js Protocalで定義されたものと同じままにしてください)で、一般的なデータを送信
    /

    輸出constがS_IMEVT_DUPLICATED = 's_evt.duplicated';

    / **
    サーバが発行-プロトコルタイプ:着陸を繰り返してメッセージ(注:このイベントは、サーバーtype.js Protocalで定義されたものと同じままにしてくださいです!)蹴られた
    **を/

    輸出のconst S_IMEVT_ILLEGAL = 's_evt.illegal';

    / **
    サーバが発行-プロトコルタイプ:不正な接続には、サービスイベントを拒否した(すなわち、イベント通知サービスは違法接続し、攻撃を防ぐために、キックオフ送られた正当な認証情報付きソケットの前にいないだろう)
    (注:このイベントは必ずあります維持し、一貫性のあるprotocal-type.jsで定義されたサーバに!)
    ** /

  • 3.3 socket.jsコンテンツ


    主にいくつかのメソッド呼び出しは、(統合化ログイン・パーミッションを決定する方法はありません)

    1、_socket //オブジェクトのインスタンス

    2、callback_showChatMessage //成功コールバック関数

    3、Socket.initConnect接続の初期化方法

    WebSocketによって送信された4、Socket.sendDataメッセージ

    5、Socket.disconnectSocketクライアントは、クライアントのソケット接続を中断します

方法4、initConnect


最初の接続と認証開始
this._socket = SocketIOClient.connect(wsUrl、{
クエリ: 'トークン=' + JSON.stringify(Data)を、
forceNew:trueに、//は、クライアントsocketio.disconnectを(させるためには、このオプションを追加)が発効しました!
?セキュア:trueにsupportSSLを://偽SSL / TLSをサポートするかどうか
});
コールバック//成功
( '接続'、機能(){this._socket.on
that.logInfo(「[E]このクライアントソケット')trueに、イベントがトリガされた接続
)};
//切断するときのコールバック
this._socket.on('切断')、関数(データ{//データの内容が"IOサーバー切断"である
[E that.logInfo('このクライアントソケット切断イベントの[終了]をトリガした'本当に、)!
});
エラー//再接続
this._socket.on(' connect_error '関数(データ){
that.logInfo(' [E]本クライアントconnect_errorイベントがトリガ「+ JSON.stringify(データ)、真の );
});
//タイムアウト
this._socket.on( 'CONNECT_TIMEOUT'、関数(){
trueにthat.logInfo( '[E]本CONNECT_TIMEOUTクライアントイベントがトリガ');
});
this._socket.on( 'エラー'、関数(ERR ){
that.logInfo( '[E]本クライアント・エラー・トリガ・イベントが持つ'真の+ ERRを、);
});
//接続タイムアウトトリガ・イベント
( '再接続'、関数(){this._socket.on
that.logInfo ( '[E]本発明のクライアント再接続イベントをトリガした'本当に、);
});
//連続再接続を試みる
this._socket.onを( 'reconnect_attempt'、関数(){
にconsole.log(本)
that.logInfo (trueに、 '[E]本クライアントreconnect_attemptイベントがトリガ');
});
this._socket.on( 'reconnect_failed'、関数(){
that.logInfo( '[E]本クライアントはreconnect_failedイベントがトリガ' )trueに;
});
障害が発生した場合//このアプローチを取ります
this._socket.on( 'reconnect_error'、関数(){
that.logInfo(trueに、 '[E]本クライアントreconnect_errorイベントがトリガ');
});
//ハートビート
確認のために生きている//が
//作成し
、これを。 _socket.on( 'ピングする'、関数(){
that.logInfo(trueに、 '[E]ハートビート要求→発行された');
});
//受信
this._socket.on( 'ピンポン'を、関数( ) {
that.logInfo( '[E]ハートビート応答が受信された←'、trueに);
});
//リスニングC_IMEVT_COMMON $ DATAメッセージタイプ
this._socket.on(C_IMEVT_COMMON $ DATA、関数(P){
that.logInfo :(+ JSON.stringify(P) 'メッセージを受信する' ; TRUE)
メッセージ通知アプリケーション層//受信した表示
that.callback_showChatMessage(P)を;
});

5、プロジェクトで使用するために反応します

    1、//自分のパス書き込み「../common/socket」から組み立て輸入ソケットで
    2、initConnectをし、コールバックcomponentDidMountのライフサイクルを書き
    たとえば//:
    Socket.initConnect(「http://192.168.7.4: 3000」、{loginToken: "47384h3uhjfh3j4j343j434h44"、
    LOGINUSERID: "[email protected]"}、trueに)

    //コールバック、callback_showChatMessageプロパティの割り当てsocket.jsするコールバック書き込み

    Socket.callback_showChatMessage =関数(データ){ 
        (データIFを。 dataContent){ 
            せJSON.parseのObj =(data.dataContent)
        } 
    }

おすすめ

転載: www.cnblogs.com/zkqbk/p/11389854.html