Socket.io là gì? Tìm hiểu cơ chế hoạt động của Socketio

ITNavi 04 Dec 2020 11814
Socket.io là gì có phải đang là vướng mắc của bạn trong quá trình tìm hiểu về lĩnh vực công nghệ thông tin. Nếu như bạn đang khó khăn trong việc tìm đáp án cho câu hỏi này thì không nên bỏ qua những chia sẻ hữu ích từ ITNavi ngay sau đây.

Định nghĩa Socket.io là gì?

Để xây dựng một ứng dụng realtime thì chúng ta cần phải sử dụng Socketio. Socketio có khả năng giúp những bên có địa điểm khác nhau có thể thực hiện dễ dàng hơn các kết nối với nhau để có thể truyền tải được dữ liệu một cách nhanh chóng và lập tức nhất thông qua hệ thống server trung gian. Ngoài ra, Socketio cũng được sử dụng cho các mục đích khác như:  chat, game online, cập nhật kết quả của một trận đấu đang xảy ra,... Định nghĩa Socket.io là gì?

Định nghĩa Socket.io là gì?

Socketio không được xem là ngôn ngữ mà chỉ là một trong những công cụ có thể hỗ trợ thực hiện cho một số ứng dụng dạng realtime. Chính vì vậy, bạn thể sử dụng socketio để thay thế hoàn toàn cho một ngôn ngữ khác và các loại ngôn ngữ đó có thể là: php, asp.net, nodejs,... Chúng tỗi xin giới thiệu đến bạn một số việc làm hot nhất hiện nay Việc làm java lương cao đãi ngộ tốt Việc làm php tại Hà Nội chế độ hấp dẫn

Cơ chế hoạt động của socket.io ra sao?

Khai báo sử dụng socketio

Cơ chế hoạt động của nó là lắng nghe data và truyền data về các máy client thông qua server. Vậy nên, người dùng cần phải khai báo việc sử dụng socketio ở cả client và server.  Code khai báo sử dụng socket.io ở server:
// build server, khai báo sử dụng socket io var express = require("express"); var app = express(); app.use(express.static("public")); app.set("view engine", "ejs"); app.set("views", "./views"); var server = require("http").Server(app); var io = require("socket.io")(server); server.listen(3000);
Code thực hiện khai báo sử dụng socketio tại phía client:
<html>     <head>     <title>Demo Socketio - Homepage</title>     <script src="jquery.js"></script>     <script src="socket.io/socket.io.js"></script>     <script>     var socket = io("http://localhost:3000");     </script>     </head>     <body>     </body>     </html>
  Bạn đọc tham khảo thêm: Constructor là gì? Tìm hiểu tổng quan Constructor trong Java

Backend là gì? Điều kiện cần và đủ để làm Backend Developer

Python là gì? Những điều bạn cần biết để học ngôn ngữ Python

Cơ chế lắng nghe, truyền dữ liệu của socketio

Để bạn có thể lắng nghe data thì hãy sử dụng câu lệnh socket.on(), để phát dữ liệu thì sử dụng lệnh socket.emit() . Socket.io được sử dụng ngày càng phổ biến

Socket.io được sử dụng ngày càng phổ biến

Code phía server:
// build server var express = require("express"); var app = express(); app.use(express.static("public")); app.set("view engine", "ejs"); app.set("views", "./views"); var server = require("http").Server(app); var io = require("socket.io")(server); server.listen(3000); // tạo kết nối giữa client và server io.on("connection", function(socket)     {     socket.on("disconnect", function()     {     });          //server lắng nghe dữ liệu từ client     socket.on("Client-sent-data", function(data)     {     //sau khi lắng nghe dữ liệu, server phát lại dữ liệu này đến các client khác                 socket.emit("Server-sent-data", data);     });     }); // create route, display view app.get("/", function(req, res)     {     res.render("homepage");     });
  Code phía client:
<html>     <head>     <title>Demo Socketio - Homepage</title>     <script src="jquery.js"></script>     <script src="socket.io/socket.io.js"></script>     <script>     var socket = io("http://localhost:3000");             //client nhận dữ liệu từ server     socket.on("Server-sent-data", function(data)     {     $("#chat-content").append(data);     });             //client gửi dữ liệu lên server     $(document).ready(function()     {     $("#send").click(function()     {     socket.emit("Client-sent-data", "Hello world");     });     });     </script>     </head>     <body>     <h1>Demo Socketio</h1>     <div>     <button id="send">Send</button>     </div>     </body>     </html>
  Bạn đọc tham khảo thêm: SQL Server là gì? Mục đích của việc sử dụng SQL Server

Những điểm nổi bật của Socket.io là gì?

Socket.io hiện đang được cộng đồng các lập trình viên dùng ngày càng nhiều bởi sự tiện lợi của nó. Hiện nay, Socket.io giúp ta sở hữu nhiều tính năng nổi bật như: bảo mật, binary, kết nối tự động, ghép kênh, tạo phòng,..

Khả năng bảo mật

Ngay khi Socket.io xuất hiện thì nó có thể tự động tạo ra những kết nối dạng bảo mật như: 
  • Thực hiện Proxy và cân bằng cho tải.
  • Tạo tường lửa cá nhân và các phần mềm chống lại virus.
Socket.io thực hiện xây dựng dựa vào Engine.IO như sau: nó sẽ khởi chạy theo  phương thức long-polling để tự động kết nối, rồi dùng những phương thức giao tiếp khác để giao tiếp được tốt hơn.

Kết nối lại tự động + phát hiện tình trạng ngắt kết nối

Khi chạy, nếu như client bị ngắt kết nối thì nó có thể kết nối tự động cho đến khi server xác nhận đã được phản hồi. Đây là tính năng cho phép thiết bị có thể tự động kết nối lại mãi mãi cho đến khi server phản hồi. Socket.io còn cung cấp cho bạn những event có thể phát hiện ngắt kết nối giữa client và server.

Hỗ trợ nhị phân

Socket.io hỗ trợ bạn một số kiểu mã nhị phân: 
  • ArrayBuffer cùng Blob nằm trên trình duyệt
  • ArrayBuffer cùng Buffer nằm trong Node.js

Hỗ trợ tạo phòng và kênh

Socket.io cho phép người dùng tạo các kênh riêng biệt, từ đó tạo ra những mối quan hệ riêng giữa các phần tương tự như module riêng lẻ hoặc dựa vào một số quyền khác nhau. Ngoài ra, nó còn hỗ trợ bạn tạo các phòng khác nhau cùng những clients được tham gia vào những phòng khác.  Socket.io có nhiều ưu điểm nổi trội

Socket.io có nhiều ưu điểm nổi trội

Hướng dẫn cài đặt Socket.io đơn giản

Trước hết, bạn cần cài đặt 2 server và client từ đó Socket.io sẽ nhận được kết nối giữa cả hai và thông thường các API của 2 phía đều tương tự nhau. 

Socket.io trên server

Với server Node.js thì bạn chỉ cần sử dụng npm để cài đặt package với tên socket.io rồi bạn thực hiện truy cập vào thư mục của dự án rồi mở terminal theo cú pháp: npm install --save socket.io

Socket.io trên client

Bạn dựng một bản độc lập của clients được hiển thị dựa theo mặc định bởi server tại: /socket.io/socket.io.js Ngoài ra, bạn cũng có thể cài đặt import thư viện ở cdn , hoặc cài đặt chúng thành các gói: webpack hoặc browserify nhờ vào sử dụng npm: npm install --save socket.io-client

Cách sử dụng Socketio như thế nào?

Cấu trúc của ứng dụng realtime thường sử dụng socket gồm 2 phần: phía server và phía client:  Với phía server: Đây chính là nơi cài đặt socket.io và ngôn ngữ được sử dụng cho server là: php, asp.net, nodejs,... Tuy nhiên, tùy thuộc vào ngôn ngữ mà nó lựa chọn thì cách cấu trúc server sẽ có phần khác nhau. Đến đây, nếu như được thì khuyến khích bạn sử dụng nodejs để dựng server bởi như vậy thì bạn ới có thể cài đặt trực tiếp socketio vào cùng với một server. Nếu bạn dùng php thì nên cài thêm package hoặc chuẩn bị riêng các server để có thể chạy được socket.io. Socket.io cài đặt như thế nào?

Socket.io cài đặt như thế nào?

Phía client: Với phía client thì bạn có thể xây dựng giao diện người dùng tại đây, để sử dụng js hoặc thư viện của js tương tự như jquery,... Và bạn có thể dùng bất cứ ngôn ngữ nào.  Chuẩn bị:
  • PC: Mac hoặc Win đều được
  • Download phần mềm socketio
Thực hiện cài đặt: Tạo thư mục Demo => mở màn hình => cd đến thư mục Demo. Ngay tại màn hình cmd thì bạn gõ lệnh:  terminal (Mac)/ cmd (Win), cd đi đến các thư mục demo. Tại đây, bạn gõ lệnh: npm init; sau đó nhấn enter. Tiếp đó, hệ thống chạy rồi bạn nhớ nhập tên dự án nếu như được yêu cầu. Tại phần setting khác thì nhấn enter bỏ qua, hệ thống hiển thị yes/no thì auto bấm chọn yes để hoàn thành cài đặt.  Hoàn thành xong, hệ thống sẽ tự động tạo file package.json. File này được dùng cho mục đích cài đặt cấu hình server để phục vụ mục đích làm web và ứng dụng realtime. Để cài package bạn chọn mở màn hình cmd > cd đến thư mục Demo > đồng thời gõ lệnh npm install express ejs socketio. Sau khi hoàn thành thì hệ thống có thể tạo thư mục nodemodules tự động. 

Tổng kết

Trên đây, là những chia sẻ từ ITNavi muốn gửi tới bạn đọc về định nghĩa Socket.io là gì và cách cài đặt nó. Hy vọng, đây là thông tin hữu ích cho bạn đọc trên con đường phát triển bản thân trong lĩnh vực công nghệ thông tin. 
ITNavi - Nền tảng kết nối việc làm IT

Nguồn: Socket.io là gì? Tìm hiểu cơ chế hoạt động của Socketio

Bài viết liên quan

NEWSLETTER

Nhập địa chỉ email của bạn dưới đây để đăng ký nhận tin mới nhất

KẾT NỐI VÀ THEO DÕI