Node.js 28 – Xử lý sự kiện trong Socket.IO

0
42

Sockets hoạt động dựa trên sự kiện. Có một số sự kiện mặc định, có thể được truy cập được bằng cách sử dụng đối tượng socket ở phía máy chủ.

  • connect
  • message
  • disconnect
  • reconnect
  • ping
  • join and
  • leave

Ở bên phía máy khác đối tượng socket cũng cung cấp một số sự kiện.

  • connect
  • connect_error
  • connect_timeout
  • reconnect

Trong ví dụ Hello Word ở bài trước, tôi sử dụng sự kiện connection và disconnection để ghi lại nhật ký người dùng khi kết nối và ngắt kết nối.

Sự kiện tích hợp

Bây giờ tôi sẽ sử dụng sự kiện message để truyền nội dung từ máy chủ đến máy khách.

Để thực hiện việc này, chỉnh ví dụ ‘Hello Word’ như sau.

Phương thức Socket.send sẽ gửi một sự kiện message cho phía máy khách . Bốn giây sau người dùng kết nối . Phương thức này sẽ gửi trên đối tượng socket kèm theo sự kiện message.

Tiếp theo chúng ta cần xử lý sự kiện này ở phía người dùng. Vì vậy hãy chỉnh index.html như sau.


Bây giờ chạy ứng dụng node của bạn lên và truy cập vào địa chỉ: http://localhost:8000

Bạn sẽ nhìn thấy nội dung như ảnh chụp màn hình dưới đây

Sau 4 giây trôi qua, máy chủ sẽ gửi một lời nhắn và máy khách sẽ xử lý nó và tạo ra kết quả như hình bên dưới.

Sự kiện tùy chỉnh

Ví dụ trên là một sự kiện được tích hợp được cung cấp bởi API của socket.io, nhưng nó không được sử dụng nhiều trong thực tê, vì chúng ta cần phân biệt giữa các sự kiện.

Để thực hiện điều này, Socket.IO cung cấp cho chúng ta khả năng tạo ra các sự kiện tùy chỉnh. Bạn có thể tạo và kích hoạt các sự kiện tùy chỉnh bằng cách sử sụng phương thức emit trên đối tượng socket.

Ví dụ, với đoạn mã sau sẽ phát ra một sự kiện là testEvent

File app.js

Để xử lý sự kiện tùy chỉnh này trên phía máy khách, chúng ta cần một trình lắng nghe sự kiện testEvent . Đoạn mã sau xử lý sự kiện trên máy khách

File index.html

Điều này sẽ hoạt động tương tự như ví dụ trước.

Sự kiện ở phía client

Chúng ta có thể phát sự kiện ở phía máy khách. Để phát ra sự kiện từ máy khách , hãy sử dụng chức năng phát sự kiện trên đối tượng socket

File index.html

Để xử lý sự kiện này, sử dụng phương thức on trên đối tượng socket ở trên máy chủ.

File app.js

Chạy ứng dụng bằng lệnh

Và truy cập vào địa chỉ http://localhost:8000  để kích hoạt sự kiện. Sự kiện sẽ được xử lý ở phía server và bạn sẽ nhận được nội dung ở trong bảng điều khiển console

[Total: 0    Average: 0/5]

LEAVE A REPLY

Please enter your comment!
Please enter your name here