次に、node.jsに単純なWebSocketサーバーを記述します。このサーバーに接続すると、応答としてウェルカムメッセージが表示されます。また、いくつかの簡単なコマンドを実行できるようになります。
これを行うには、npmパッケージマネージャーを使用してNode.jsをインストールする必要があります。
プロジェクトの設定
まず、将来のプロジェクト用のディレクトリを作成する必要があります
mkdir websocket-server-node
ディレクトリに移動します
cd websocket-server-node
次に、npmを介して新しいプロジェクトを初期化する必要があります
npm init
インストーラーはいくつかの質問に答えるように求めます、あなたはそれらをスキップすることができます
, WS UTF-8
npm install ws
npm install --save-optional utf-8-validate
websocket-
. server.js, . , GitHub.
server.js:
websocket
const WebSocket = require('ws');
, , WebSocket, WebSocket-.
const wsServer = new WebSocket.Server({port: 9000});
HTTP-, WebSocket- . HTTP- , WebSocket- , .
, onConnect.
wsServer.on('connection', onConnect);
onConnection ws-, .
onConnect , wsClient. wsClient: message close.
message - .
close - .
onConnect, .
onConnect:
function onConnect(wsClient) {
console.log(' ');
//
wsClient.send('');
wsClient.on('message', function(message) {
/* */
}
wsClient.on('close', function() {
//
console.log(' ');
}
}
close .
. , JSON-. JSON , .
JSON :
{
action: 'ECHO' | 'PING',
data?: string //
}
, :
echo-, data
ping, pong
, " "
:
try {
// , JSON-
const jsonMessage = JSON.parse(message);
switch (jsonMessage) {
case 'ECHO':
wsClient.send(jsonMessage.data);
break;
case: 'PING':
setTimeout(function() {
wsClient.send('PONG');
}, 2000);
break;
default:
console.log(' ');
break;
}
} catch (error) {
console.log('', error);
}
, PING , 2 .
server.js , , .
console.log(' 9000 ');
:
node server.js
Windows Linux (Ctrl + C)
MacOs (Cmd + C)
,
Window:
ipconfig
Linux MacOS:
ifconfig
192.168.0.15, ws://192.168.0.15:9000.
, F12. DevTools, :
const myWs = new WebSocket('ws://localhost:9000');
//
myWs.onopen = function () {
console.log('');
};
//
myWs.onmessage = function (message) {
console.log('Message: %s', message.data);
};
// echo-
function wsSendEcho(value) {
myWs.send(JSON.stringify({action: 'ECHO', data: value.toString()}));
}
// ping
function wsSendPing() {
myWs.send(JSON.stringify({action: 'PING'}));
}
. wsSendPing:
wsSendPing()
2 , :
メッセージ:PONG
たとえば、「Test!」という内容でwsSendEcho関数を呼び出すと、コンソールは次のように出力します。
メッセージ:テスト!
それで全部です!誰がそれを好きで、いいねを入れて、購読してください。すべての人に良いです!