ホームページ >ウェブフロントエンド >フロントエンドQ&A >NodejsとWebSocketの違いは何ですか

NodejsとWebSocketの違いは何ですか

青灯夜游
青灯夜游オリジナル
2021-12-31 11:28:112675ブラウズ

違い: 1.nodejs は JS 実行環境であるのに対し、WebSocket は通信プロトコルです; 2.nodejs は、高速な応答と拡張が容易なネットワーク アプリケーションを簡単に構築するために使用されますが、WebSocket はクライアントとのデータ交換を行うことができます。サーバーがよりシンプルになり、サーバーがクライアントにデータをアクティブにプッシュできるようになります。

NodejsとWebSocketの違いは何ですか

#このチュートリアルの動作環境: Windows7 システム、nodejs バージョン 12.19.0、DELL G3 コンピューター。

nodejs とは

Node は、Chrome V8 エンジンに基づく JavaScript 実行環境であり、JavaScript を上で実行できる開発プラットフォームです。サーバー: 応答が速く、拡張が容易なネットワーク アプリケーションを簡単に構築するために使用されます。 Node はイベント駆動型のノンブロッキング I/O モデルを使用して軽量かつ効率的であるため、分散デバイス上でデータ集約型のリアルタイム アプリケーションを実行するのに最適です。

Node は「イベント ループ」と呼ばれるアーキテクチャを使用しており、拡張性の高いサーバーを簡単かつ安全に作成できます。サーバーのパフォーマンスを向上させるためのさまざまな手法があります。 Node は、パフォーマンスの向上と開発の複雑さの軽減の両方を実現できるアーキテクチャを選択しました。これは非常に重要な機能です。同時プログラミングは多くの場合複雑で、地雷がたくさんあります。ノードはこれらをバイパスしますが、依然として優れたパフォーマンスを提供します。

Node は、一連の「ノンブロッキング」ライブラリを使用してイベント ループをサポートします。基本的に、ファイル システムやデータベースなどのリソースのインターフェイスを提供します。ファイル システムにリクエストを送信する場合、ハードディスクの準備ができると (ファイルのアドレス指定と取得のために) ノンブロッキング インターフェイスがノードに通知します。このモデルは、直感的で理解しやすいスケーラブルな方法で低速リソースへのアクセスを簡素化します。特に、onmouseover や onclick などの DOM イベントに慣れているユーザーにとっては、親しみやすく感じられるでしょう。

サーバー側で Javascript を実行できるようにすることは Node の固有の機能ではありませんが、強力な機能の 1 つです。ブラウザ環境によってプログラミング言語を選択する自由が制限されていることを認めざるを得ません。サーバーとますます複雑になるブラウザ クライアント アプリケーション間でコードを共有したいという要望は、JavaScript を介してのみ実現できます。サーバー側で実行される Javascript をサポートするプラットフォームは他にもありますが、Node は上記の特性により急速に発展し、事実上のプラットフォームになりました。

15 Nodejs アプリケーション シナリオ

Nodejs についてはすでに予備的な理解ができています。Nodejs のアプリケーション シナリオを見てみましょう。

1 Web 開発: Express EJS Mongoose/MySQL

express は、Web サイトを迅速に構築できる軽量で柔軟な Nodejs Web アプリケーション フレームワークです。 Express フレームワークは、Nodejs の組み込み Http モジュールに基づいて構築されており、Http モジュールを再パッケージして Web リクエスト処理の機能を実装します。

ejs は、コンパイルを通じて HTML コードを生成する埋め込み Javascript テンプレート エンジンです。

mongoose は MongoDB のオブジェクト モデル ツールで、Mongoose フレームワークを通じて MongoDB にアクセスできます。

mysql は、MySQL データベースに接続し、MySQL へのアクセスに使用できる通信 API です。

通常、Web 開発に Nodejs を使用するには、Java の SSH と同様に 3 つのフレームワークを使用する必要があります。

2 REST 開発: Restify

restify は、サーバーとクライアントをサポートする Nodejs に基づく REST アプリケーション フレームワークです。 Restify は Express よりも REST サービスに重点を置き、Express のテンプレート、レンダリング、その他の機能を削除すると同時に、REST プロトコルの使用、バージョン管理のサポート、HTTP 例外処理を強化します。

3 Web チャット ルーム (IM): Express http://Socket.io

socket.io は、Nodejs アーキテクチャに基づくソフトウェアで、リアルタイム通信用の WebSocket プロトコルをサポートします。バッグ。 Socket.io は、ブラウザ間でリアルタイム アプリケーションを構築するための完全なパッケージを提供します。Socket.io は完全に JavaScript によって実装されています。

4 Web クローラー: Cheerio/Request

cheerio は、サーバー用に特別にカスタマイズされた、高速かつ柔軟でカプセル化された jQuery コア機能ツールキットです。 Cheerio にはコア jQuery のサブセットが含まれており、jQuery ライブラリからすべての DOM の不整合とブラウザの非互換性が取り除かれ、その真にエレガントな API が明らかになります。 Cheerio は非常にシンプルで一貫した DOM モデルで動作し、解析、操作、レンダリングを驚くほど効率的にします。基本的なエンドツーエンドのベンチマークでは、Cheerio が JSDOM よりも約 8 倍高速であることが示されています。 Cheerio は @FB55 互換の htmlparser をカプセル化しており、ほぼすべての HTML および XML ドキュメントを解析できます。

5 ウェブ ブログ: Hexo

Hexo は、Node.js をベースとしたシンプルで軽量な静的ブログ フレームワークです。 Hexo を使用すると、わずか数コマンドで完成する独自のブログをすぐに作成できます。

Hexo がリリースされると、独自の Node サーバーまたは github にデプロイできます。個人ユーザーにとって、GitHub 上にデプロイすることは、サーバーのコストを節約できるだけでなく、さまざまなシステム運用保守 (システム管理、バックアップ、ネットワーク) のトラブルを軽減できるなど、多くのメリットがあります。したがって、github をベースにした個人サイトが人気になり始めています...

6 Web フォーラム:nodeclub

Node Club は、Node.js と MongoDB で開発された新しいコミュニティ ソフトウェアです。インターフェイスと強力な機能 豊富でコンパクト、高速な Node.js は中国の技術コミュニティ CNode で使用されていますが、独自のコミュニティを構築するために使用することもできます。

7 Web スライドショー: Cleaver

Cleaver は、Markdown に基づいてプレゼンテーションを生成できます。すでに Markdown ドキュメントをお持ちの場合は、30 秒でスライドショーを作成できます。クリーバーはハッカーのためのツールです。

8 フロントエンドパッケージ管理プラットフォーム: bower.js

Bower は twitter が提供するパッケージ管理ツールで、nodejs のモジュール的な考え方に基づいて機能がさまざまなモジュールに分散されています。 、そのため、モジュールとモジュール間には関係があり、モジュール間のこの関係を管理するために Bower が使用されます。

9 OAuth 認証: Passport

Passport プロジェクトは、Nodejs に基づく認証ミドルウェアです。 Passport は「ログイン認証」のみを目的としているため、コードがクリーンで保守しやすく、他のアプリケーションへの統合も容易です。 Web アプリケーションには通常、ユーザー名とパスワードによるログイン、および OAuth 認証によるログインという 2 つの形式のログイン認証があります。 Passport は、アプリケーションの特性に応じてさまざまな認証メカニズムを構成できます。この記事では、ユーザー名とパスワードの認証ログインについて紹介します。

10 スケジュールされたタスク ツール: Later

Later は、スケジュールされたタスクを最も簡単な方法で実行する Nodejs に基づくツール ライブラリです。後でノードとブラウザで実行できます。

11 ブラウザ環境ツール:browserify

Browserify の登場により、Nodejs モジュールをブラウザで実行し、require() 構文形式を使用してフロントエンド コードを編成し、npm モジュールをロードできるようになります。 。ブラウザでは、browserify を呼び出してコンパイルされたコードも