この記事の例node.jsは、参照用のインスタント通信用のWebチャットサーバーを作成します。特定のコンテンツは次のとおりです
1。NodeJS-Websocketを使用します
NodeJS-Websocketは、node.jsに基づいて記述されたWebsocketプロトコルを実装するバックエンドライブラリです。
接続:https://github.com/sitegui/nodejs-websocket。
(1)インストール
Project Directory:NPM Install NodeJS-WebsocketでNPMをインストールする
(2)サーバーを作成します
// nodejs-websocketvar ws = require( "nodejs-websocket"); // createServerメソッドを呼び出してサーバーを作成し、コールバック関数のconnは接続のインスタンスですvar server = ws.create(connole.log( "new connection"); //テキストイベントを聞く、テキストイベントがテキストタイプデータがサーバーから受信されるたびにトリガーされます。 console.log( "receive" + str);
2。クライアントはWebSocketを使用します
クライアントでは、WebSocketオブジェクトをインスタンス化する必要があります。WS= new WebSocket( "ws:// localhost:5000");渡されたパラメーターはws://+urlです。これは、httpプロトコルプレフィックスhttp://と同じです。次に、WebSocketの組み込みのメソッドを使用して、イベントを監視し、データを表示できます。
ここでは、各リスニングイベントを紹介します。ONOPENサーバーとクライアントが接続を確立したときにトリガーをトリガーします。クライアントがサーバーによって送信されたデータを受信したときに、オンメスはトリガーします。クライアントとサーバーの接続が閉じられているときに、OnCloseがトリガーします。接続エラーが発生したときにOnErrorがトリガーします。
3. WebSocket + nodejsを使用してオンラインチャットルームを実装する
(1)HTMLおよびCSSコード省略
(2)クライアントJS:
oconnect.onclick = function(){ws = new websocket( 'ws:// localhost:5000'); ws.onopen = function(){oul.innerhtml+= "<li>クライアント接続</li>"; } ws.onmessage = function(evt){oul.innerhtml+= "<li>"+evt.data+"</li>"; } ws.onclose = function(){oul.innerhtml+= "<li>クライアント切断</li>"; }; ws.onerror = function(evt){oul.innerhtml+= "<li>"+evt.data+"</li>"; }; }; osend.onclick = function(){if(ws){ws.send(oinput.value); }}(3)サーバー側JS: /*WebSocketは、2種類のデータ送信をサポートします。テキストタイプとバイナリタイプ。バイナリデータが送信され、ストリームパターンを読み取ります* /var App = require( 'http')。CreateServer(Handler); //コードを簡素化するには、サーバー作成固有のコードをハンドラー関数に配置しますvar ws = require( 'nodejs-websocket'); var fs = require( 'fs'); app.listen(8888); function Handler(req、res){// __ dirNameファイルがある現在のディレクトリを返します。ファイル読み取りfs.readfile(__ dirname+'/index.html'、function(err、data){if(err){res.writehead(500); return res.writehead( 'error');} res.writehead(200); res.End(data);});} // cendml centml frace htmlのcentml shtml a shtml as ans html in shml in shml in the rend in shund(res.writehead( 'error');} res.writehead( 'erro);対応する接続のインスタンスvar server = ws.createserver(conn){console.log( 'new connecton'); //テキストイベントを聞き、conn.on( "テキスト"、function(str){テキストが受信されるたびに(サーバー、str);}); console.log( 'Connection Closed'); //ここのリスナーは、開いたばかりのサーバーのポートであることに注意してください。クライアントはここでメッセージを送信して、functionブロードキャスト(サーバー、msg){//server.connectionsはすべての接続されたclients.connections.connections.foreachを含む配列です。これのすべてのコンテンツがすべての人の学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。