Sekarang kita akan menulis server WebSocket sederhana di node.js. Saat Anda terhubung ke server ini, Anda akan menerima pesan selamat datang sebagai tanggapan. Dan juga beberapa perintah sederhana akan tersedia untuk dieksekusi.
Untuk melakukan ini, Anda perlu menginstal Node.js dengan manajer paket npm
Penyiapan proyek
Pertama, kita perlu membuat direktori untuk proyek mendatang
mkdir websocket-server-node
Masuk ke direktori
cd websocket-server-node
Selanjutnya, Anda perlu menginisialisasi proyek baru melalui npm
npm init
Penginstal akan meminta Anda untuk menjawab beberapa pertanyaan, Anda dapat melewatinya
, 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 , :
Pesan: PONG
Panggil fungsi wsSendEcho, misalnya, dengan konten "Test!", Dan konsol akan menampilkan:
Pesan: Uji!
Itu saja! Siapa yang menyukainya, taruh Suka, berlangganan. Bagus untuk semua!