01/10/2018, 09:39
Nodejs - Làm sao để thực thi code ngay cả khi không có request?
Giả sử e muốn viết 1 chương trình hẹn giờ, khi đến thời gian đã hẹn thì sẽ thực hiện hành động nào đó mặc dùng ko có request nào đến server. Các bác cho e hỏi có cách nào để làm được việc đó ko ??
Bài liên quan
Bạn tìm hiểu websocket nhé. Nodejs bạn tìm hiểu về socket.io sẽ giải quyết được vấn đề của bạn. Về cơ bản websocket sẽ giữ kết nối cho bạn. Chữ không như kết nối http thông thường là bạn send request, server handle r trả về response là ngắt kết nối.
setInterval(hàm cần chạy, thời gian)
https://nodejs.org/api/timers.html
Nếu dùng socket.io thì vẫn phải có 1 user trực trên server hả bác ??
chủ thớt đang cần làm hẹn giờ chứ ko phải là socket bạn à:d
Không cần bạn nhé. Bạn có thể tưởng tượng viết nó như 1 app console sử dụng setInterval or setTimeout thôi.
1.Thằng socket.io bản chất là dùng ajax liên tục để handle realtime --> tốn băng thông chứ ko phải websocket đâu. Giờ các trình duyệt hầu hết đã hỗ trợ websocket nên dùng luôn chứ khỏi dùng socket.io.
2. Hình như thớt hỏi ý khác
e tưởng socket.io dựa trên websocket @@ vừa xem live của thầy khoapham nói thế mà
Nếu dùng setInterval thì có hại gì đến server ko bác ? với cả nếu có 1 người on hay 100 người on trên server thì cái setInterval có khác nhau gì ko ?
Sao e chạy đoạn code này nó cứ ra 4 dòng log vậy bác ?? cứ 5s ra 4 dòng @@
Tiện thể e dùng server của thằng openshift. nó có cái file start.js này e ko hiểu lắm có tác dụng gì
Bạn đang chạy trong cluster mode chạy nhiều instance (có thể coi là đa luồng), bạn có thể thấy nó log ra là có 4 worker ko ?? nên nó ra 4 dòng là đúng rồi. File kia để cấu hình server cluster đó.
Nếu chưa nắm chắc thì cứ viết hoàn chỉnh app chạy localhost thôi, rồi sau đó triển khai lên server sau cũng được mà
E hiểu rồi. tks bác nhiều ạ