Nodejs-websocket簡易コードローカルエリアネットワークの複数のクライアントによる通信を実現
7071 ワード
Websocket:
WebSocketは、HTML 5が提供し始めたブラウザとサーバ間のフルデュプレクス通信のネットワーク技術である.WebSocket APIでは、ブラウザとサーバが握手(handshaking)するだけで、ブラウザとサーバの間に高速チャネルが形成されます.両者の間で直接データを互いに転送することができる.WebSocketは、サーバとクライアントに分かれた通信プロトコルです.サーバーはバックグラウンドに置いて、クライアントとの長い接続を維持して、双方の通信の任務を完成します.クライアントは一般的にHTML 5ブラウザをサポートするコアで実現され、JavascriptAPIを提供することでWebページを使用してwebsocket接続を確立することができます.
以下は筆者のコードの実行です:まずwebsocketプラグインをインストールします:コマンドウィンドウnpm install websocketコマンドウィンドウ実行ファイルコード:
フロントエンドページコード:ファイル接尾辞htmlをejsに変更することに注意してください.バックグラウンドファイルがジャンプするページはejsの中でレンダリングされるので、変更したくない場合はres.render(‘home 3’)をres.sendFile(_dirname+"/views"+"/home 3.html")に変更してみてください.
これにより,バックグラウンドファイルを実行し,各クライアントがページ上でサーバ側のip:ポート番号を要求すると,接続通信が可能になる.上記のコードを例にとると、バックグラウンドコードファイルの実行–192.168.3.102:8888–コンテンツの入力、通信へのアクセス
WebSocketは、HTML 5が提供し始めたブラウザとサーバ間のフルデュプレクス通信のネットワーク技術である.WebSocket APIでは、ブラウザとサーバが握手(handshaking)するだけで、ブラウザとサーバの間に高速チャネルが形成されます.両者の間で直接データを互いに転送することができる.WebSocketは、サーバとクライアントに分かれた通信プロトコルです.サーバーはバックグラウンドに置いて、クライアントとの長い接続を維持して、双方の通信の任務を完成します.クライアントは一般的にHTML 5ブラウザをサポートするコアで実現され、JavascriptAPIを提供することでWebページを使用してwebsocket接続を確立することができます.
以下は筆者のコードの実行です:まずwebsocketプラグインをインストールします:コマンドウィンドウnpm install websocketコマンドウィンドウ実行ファイルコード:
var express = require('express');
var app = new express();
app.use(express.static('public'));
app.set('views engine','ejs');
app.get('/',function(req,res){
res.render('home3');
})
app.listen(8888); // localhost:8888
var ws = require('nodejs-websocket'); // websocket
var server = ws.createServer(function(c){ //
console.log('connection is succession'); //
c.on('text',function(str){ // on , text , 。
server.connections.forEach(function(connection){ //
connection.sendText(str);
})
})
})
server.listen(1111);
フロントエンドページコード:ファイル接尾辞htmlをejsに変更することに注意してください.バックグラウンドファイルがジャンプするページはejsの中でレンダリングされるので、変更したくない場合はres.render(‘home 3’)をres.sendFile(_dirname+"/views"+"/home 3.html")に変更してみてください.
<html>
<head>
<meta charset="UTF-8">
<title>title>
head>
<body>
<input type="text" name="inp" id="inp" placeholder=" " />
<button id = 'btn', onclick="send()"> button>
<script type="text/javascript">
var ws;
window.onload=function(){
ws= new WebSocket('ws://192.168.3.102:1111'); // websocket server ;
ws.onopen=function(){ //websocket 4
console.log('ws is opening')
};
ws.onmessage=function(mydata){
var div = document.createElement('div')
div.innerHTML=mydata.data;
document.body.appendChild(div);
}
ws.onclose=function(){
console.log('ws is closed');
}
ws.onerror=function(){
console.log('ws is error');
}
}
function send(){
var str = document.getElementById('inp').value;
if(str==''){
alert(' ');
}else{
ws.send(str);
}
str = '';
}
script>
body>
html>
これにより,バックグラウンドファイルを実行し,各クライアントがページ上でサーバ側のip:ポート番号を要求すると,接続通信が可能になる.上記のコードを例にとると、バックグラウンドコードファイルの実行–192.168.3.102:8888–コンテンツの入力、通信へのアクセス