Node.js 10 : Install
[1]. Make sure the current enabled version of Node.js and Install it.
[root@dlp ~]# dnf module list nodejs
CentOS-8 - AppStream
Name Stream Profiles Summary
nodejs 10 [d] common [d], development, minimal, s2i Javascript runtime
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
# install Node.js 10
[root@dlp ~]# dnf module -y install nodejs:10
Dependencies resolved.
================================================================================
Package
Arch Version Repository
Size
================================================================================
Installing group/module packages:
nodejs x86_64 1:10.16.3-2.module_el8.0.0+186+542b25fc AppStream 9.0 M
npm x86_64 1:6.9.0-1.10.16.3.2.module_el8.0.0+186+542b25fc AppStream 3.8 M
Installing module profiles:
nodejs/common
Enabling module streams:
nodejs 10
Transaction Summary
================================================================================
Install 2 Packages
.....
.....
[root@dlp ~]# node -v
v10.16.3
# verify to create test script
[root@dlp ~]# cat > nodejs_test.js <<'EOF'
var http = require('http');
var server = http.createServer(function(req, res) {
res.write("Hello, This is the Node.js Simple Web Server!\n");
res.end();
}).listen(8080);
EOF
[root@dlp ~]# node nodejs_test.js &
[1] 10686
[root@dlp ~]# curl localhost:8080
Hello, This is the Node.js Simple Web Server!
[root@dlp ~]# kill 10686
[2] .Create a sample chat apprication which WebSocket and SSL/TLS are implemented to verify working.
For SSL certificate on this example, it uses the one from Let's enctypt.
If Firewalld is running, allow port the apprication uses. (it's [1337] on this example)
[cent@dlp ~]$ npm install fs socket.io express
[cent@dlp ~]$ vi chat.js
var fs = require('fs');
var express = require('express');
var app = express();
var opts = {
key: fs.readFileSync('/etc/letsencrypt/live/dlp.srv.world/privkey.pem').toString(),
cert: fs.readFileSync('/etc/letsencrypt/live/dlp.srv.world/fullchain.pem').toString(),
};
var http = require('https').Server(opts, app);
var io = require('socket.io')(http, opts);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
socket.on('chat message', function(msg){
io.emit('chat message', msg);
});
});
http.listen(1337, function(){
console.log('listening on *:1337');
});
[root@dlp ~]# vi index.html
<!DOCTYPE html>
<html>
<head>
<title>WebSocket Chat</title>
</head>
<body>
<form action="">
<input id="sendmsg" autocomplete="off" /><button>Send</button>
</form>
<ul id="messages" style="list-style-type: decimal; font-size: 16px; font-family: Arial;"></ul>
<script src="https://dlp.srv.world:1337/socket.io/socket.io.js"></script>
<script src="https://code.jquery.com/jquery.min.js"></script>
<script>
var socket = io('https://dlp.srv.world:1337');
$('form').submit(function(){
socket.emit('chat message', $('#sendmsg').val());
$('#sendmsg').val('');
return false;
});
socket.on('chat message', function(msg){
$('#messages').append($('<li style="margin-bottom: 5px;">').text(msg));
});
</script>
</body>
</html>
[cent@dlp ~]$ node chat.js
listening on *:1337
[3]. Access to the sample apprication to verify working normally.
Comments
Post a Comment