30/09/2018, 21:17

[Tò mò + Hỏi] Real time của dạy nhau học dùng gì?

Chào mọi người, mình xem request thì thấy dạy nhau học cứ gửi lên 1 request + sau 25s thì dừng rồi gửi request mới, cứ như thế. Nếu mình click vào topic thì nó hủy luôn rồi lại gửi cái mới. Mình muốn biết thuật toán hay hướng làm. Cái request gửi lên bằng ajax hay gì? Sao nó chờ 25s mà vẫn báo về mã trạng thái 200. Cảm ơn mn đã đọc.

Khoa Nguyen viết 23:26 ngày 30/09/2018

diễn đàn dùng long poll đó bạn. Cứ tìm hiểu vè nó là sẽ biết. Còn công dụng thì làm thông báo, cập nhật bài viết mới

kid1412 viết 23:31 ngày 30/09/2018

à mình có tìm qua long-poll, sao diễn đàn lúc giữ request nó vẫn có status code 200 màu xanh nhỉ. AJAX mình gửi lên toàn màu xám, có kq nó mới xanh @@~

Khoa Nguyen viết 23:25 ngày 30/09/2018

Bạn có thể đọc technical information ở thread này

Discourse Meta – 16 Feb 13

How discourse stays online (Message Bus, Faye, Long Polling)

Hi, sorry for bad English. I looked at source, but it’s hard to read and understand in big project. But as i understood Discourse using own implementation of communication over (Long polling (only(?))) to represent most actual data to users with...

Reading time: 3 mins

kid1412 viết 23:22 ngày 30/09/2018

cảm ơn bạn. cái diễn đàn giống y dạy nhau học O.o

Đinh Quốc Hân viết 23:24 ngày 30/09/2018

cái diễn đàn giống y dạy nhau học O.o

Nó là cha đẻ của Discourse mà Discourse là mã nguồn mà diễn đàn dùng.

kid1412 viết 23:21 ngày 30/09/2018

ra vậy, mình thấy diễn đàn dùng ruby, không biết php khác gì không?

Đinh Quốc Hân viết 23:19 ngày 30/09/2018

2 ngôn ngữ tất nhiên là khác rồi, PHP mạnh về lĩnh vực khác còn ruby thì vững hơn ở mặt khác. Ở đây Ruby tốt về sự thời gian thực “real time” tương tác các bài viết và thành viên ở mức liên tục ~ nếu làm như vậy ở PHP thì không ổn và có thể không được.

kid1412 viết 23:21 ngày 30/09/2018

Cảm ơn bác ạ

Thành Phạm viết 23:24 ngày 30/09/2018

Có phải là do dùng kỹ thuật này nên khó làm app android hả a hay lý do khác nhể

Thế Dân viết 23:27 ngày 30/09/2018

Nhân tiện cho mình hỏi, đây là nội dung 1 post của dnh, làm thế nào để bóc tách dữ liệu đc? Chẳng thấy có cấu trúc gì cả?

    Host: daynhauhoc.com
    User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: en-US,en;q=0.5
    Accept-Encoding: gzip, deflate
    DNT: 1
    Cookie: _t=7cb19664e6a34a7cdfba589aad7b09d4; _forum_session=TE5XeUl6R2lINmwrM21ySVgrL25UbFBDQWoySzFOR1lwSU1jZ253a3hWeWlSaHZ6SHpibnUyaFp1ekc4YzF5aUxvWVZrS0ZPMGhvZ1lEczhOWG1ncy83UnF4MHZMK0thRzNlSVNBZlVjSWZJdGU3eXdRcTd6eGhBcnUxcW1rVzB4cExMbTBwQTdjNW1zdTc2cFBlZTRqRHZ6eXgyNE9lTjBIQnhQZFQwY3VsaDZrSzJnNlZjdFRmUFNUN1c5SUFXdlU2N3BUVzNDbG5OVDZDdDBabXRtcmtVU0w0NDBWU0hzR01lMXkzbzBmTkhMWnBBWVdWQ3Q5TVEzZnNvdUxhZ1NPRWdIYVZqZHVjOElseUtMTDcvVHpDS0RLaytQYzVSTW1yTXVpS2dWRUh1Q1JXdVgzRG1XTTlnTTFYUkFDKzVyS24rTlg0SmRQQXVDSkJ2WWxVQ1UyRWZueXpEeEhJTGpTSVhHU2JsSk5OZTd1QTNtSnNjTTVkYUsyamx4bm0yLS01RXBPNm9QYVg3aWlLdUdVVlZmMTh3PT0%3D--20e75cfe26a8569da183cfa43cf97cab78d9d6b4
    Connection: keep-alive
Đinh Quốc Hân viết 23:33 ngày 30/09/2018

Mỗi một request đều trỏ về mọt json và nó tự động chứ không nhận qua http request, ví dụ với topic này thì là

http://daynhauhoc.com/t/to-mo-hoi-real-time-cua-day-nhau-hoc-dung-gi/27396.json

kid1412 viết 23:19 ngày 30/09/2018

mình không hiểu lắm :((

Đinh Quốc Hân viết 23:22 ngày 30/09/2018

Đơn giản mà, nó gửi đến server, id_topic cần lấy là bao nhiêu và server tự chuyển đổi dữ liệu dựa trên json của id topic đó.

–> /t/id.json

kid1412 viết 23:22 ngày 30/09/2018

cái này khi có request lên server mới tạo hay tạo sẵn bác?

Đinh Quốc Hân viết 23:18 ngày 30/09/2018

mọi router của ruby on rails xử lý bạn ạ bạn có thể ở bất kỳ url nào và thêm .json sẽ ra dữ liệu json kể cả user ví dụ: http://daynhauhoc.com/users/dqh.json

Thế Dân viết 23:22 ngày 30/09/2018

chắc là request thì nó mới tạo.

Đinh Quốc Hân viết 23:20 ngày 30/09/2018

bạn có thể tham khảo quá trình xử lý của nó tại đây: https://github.com/discourse/discourse

Discourse là một Open Source nên yên tâm tha hồ nghiên cứu về nó nhưng phài có kiến thức nhất định về Ruby và đặc biệt là Ruby On Rails

Thế Dân viết 23:19 ngày 30/09/2018

mình vẫn thắc mắc: nếu mình post một bài thì server sẽ update json và các máy khác sẽ nhận đc một json mới từ server, vậy json mới này là toàn bộ trang web hay chỉ là nội dung bài viết (mới) của mình thôi.

kid1412 viết 23:19 ngày 30/09/2018

mình đọc ruby nhiều chỗ không hiểu, tai mình biết php thôi

Đinh Quốc Hân viết 23:21 ngày 30/09/2018

Nó không có tạo ra JSON (trừ khi là cache), đơn giản nó tiếp nhận từ Request URI xác định bằng các ROUTER và xuất ra dưới dạng JSON thôi còn về POST thì ta gửi REQUEST POST lên và duyệt.

Bài liên quan
0