ホームページ  >  記事  >  ウェブフロントエンド  >  ノード内で Socket.IO モジュールを適切に使用する方法の簡単な分析

ノード内で Socket.IO モジュールを適切に使用する方法の簡単な分析

青灯夜游
青灯夜游転載
2022-11-22 19:53:141403ブラウズ

node で Socket.IO モジュールを使用するにはどうすればよいですか?次の記事では、node.js で Socket.IO モジュールをエレガントに使用する方法を紹介します。

ノード内で Socket.IO モジュールを適切に使用する方法の簡単な分析

Socket.IO

Socket.IO の定義は

WebSocket ライブラリ#です## クライアント側 js サーバー側 Node.js を含むその目標は、さまざまなブラウザーやモバイル デバイスで使用できるリアルタイム アプリケーションを構築することです。 [関連チュートリアルの推奨事項: nodejs ビデオ チュートリアル ]Socket.IO は、

WebSocket、AJAX、およびその他の通信メソッド

統合通信インターフェイス にカプセル化します。つまり、SocketIO を使用する場合、 互換性の問題を心配する必要はありません。最下層が自動的に最適な通信方法を選択します


Socket.IOの利点

    socket.ioはサーバーとクライアントをカプセル化します。とてもシンプルで使いやすいです。
  • socket.io はクロスプラットフォームをサポートしているため、好みのプラットフォームでリアルタイム アプリケーションを開発する選択肢が増えています。
  • socket.io は、ピア (サーバーまたはクライアント) に送信するイベントをカスタマイズできます。
  • 送信、受信、または on

    には Emit を使用します。

  • WebSocket、AJAX ロングポーリング、Iframe ストリーミングなどから、ブラウザに基づいてリアルタイム ネットワーク アプリケーションを実装するための最適な方法が自動的に選択されます。これは非常に便利でユーザーにとって便利です。フレンドリーで、サポートされる最小ブラウザは IE5.5 です。 WebSocket がサポートされていない場合は、自動的に
  • Polling

##ノード ## に Socket.IO をインストールします。 #ターミナルを開き、次のコードをターミナルに入力して Socket.IO モジュールをインストールします:
npm i socket.io


ノードで Socket.IO を使用します

emit

on

は 2 つの最も重要な API で、それぞれ sendinglistening イベントに対応します。 サーバー でイベントを自由に定義して

送信し、

クライアント on をリッスンすることができます。逆も同様です。 送信される コンテンツ形式 も非常に自由です。 は、数値、文字列、ブールなどの基本的なデータ型にすることも、オブジェクト、配列型、さらには関数# ##。コールバック関数を使用すると、より移植性の高い対話が可能になります。

emit

##socket.emit(eventName[, ...args])イベントを発行 (トリガー)

socket.emit('aaa','你好,前台')

ここでは、例として server を取り上げます。サーバーに socket.emit() を渡します イベント作成方法 (

第一パラメータ:カスタムイベント
)

aaa、情報送信 (第二パラメータ) わかりました、フロント .注: 2 番目のパラメータは emit メソッド

内にあるため、##object
として渡すことができます。
JSON.stringfy()

メソッドを使用すると、オブジェクトを文字列に自動的に変換します。 #on

##socket.on(イベント名, コールバック)

:emit

socket.on('aaa',(msg)=>{
	console.log(msg)
})
によって発行されたイベントをリッスンします。ここでは、例として client

を取り上げます。クライアントは、サーバー上のイベントをリッスンします。

aaaそして、コールバック関数を通じて aaa によって渡された情報を出力します。

#express で


を使用して導入server

const server = require('http').createServer(app);
const io = require('socket.io')(server);
io.on('connection', socket => {
	console.log('恭喜你连接成功!')
	socket.on("message",(msg)=>{
		console.log(msg)  //你好 后台
		//注意 : 这里的 io.emit() 是默认转发给全部客户端信息,所有客户端都可以收到
		io.emit("allMsg","广播 : 欢迎来到聊天室")
	})
});
server.listen(3000);
は、server をパラメータとして渡し、io

によってマウントされたサービスが引き続き http に基づいていることを示します。の。 ここのコードは、接続が成功している限り、接続成功情報が出力されることを示しています。

Client<pre class="brush:php;toolbar:false">&lt;script src=&quot;/socket.io/socket.io.js&quot;&gt;&lt;/script&gt; &lt;script&gt;   const socket = io();  //默认连接服务端启动的本地端口地址   socket.emit(&quot;message&quot;,&quot;你好 后台&quot;)   // 监听服务端的广播事件,接收广播的消息   socket.on(&quot;allMsg&quot;,(msg)=&gt;{ console.log(msg)  //广播 : 欢迎来到聊天室   }) &lt;/script&gt;</pre>
client

socket.io で個別に参照する必要があります。 js
ファイル。socket.io はブラウザの組み込みモジュールではなく、個別に参照する必要があるため、js ファイルの内部コード ==>
socket.io.js 内部コード

をコピーします。ここのコードを、js ファイルを作成してクライアントで参照したコードに置き換えます。 クライアントに constソケット = io() が表示されている限り、ブラウザはデフォルトでクライアントによって開始されたローカル サービス アドレスに直接接続します。

小結

socket.io這個第三方模組相對來說,書寫程式碼的時候更加的方便與高效,在ws模組中透過switch分支來進行對不同的聊天類型進行不同的方法呈現,而在socket.io模組中僅僅透過自訂事件就可以解決這個問題,並且socket.io可以在伺服器斷開後,當你再次進入客戶端後可以自動連接,整體的表現優於ws模組。

更多node相關知識,請造訪:nodejs 教學

以上がノード内で Socket.IO モジュールを適切に使用する方法の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。