6

Tôi đang cố gắng kết hợp quy trình làm việc chung của việc cung cấp thông báo đẩy người dùng thông qua nhân viên dịch vụ.Thông báo đẩy nhân viên dịch vụ với Angular2

Tôi đã theo dõi this Hướng dẫn thông báo đẩy nhân viên dịch vụ Google Developers và hiện đang nghĩ về cách tôi có thể triển khai loại điều này trong ứng dụng web dựa trên người dùng nhỏ để thử nghiệm.

Trong tâm trí của tôi, công việc chung của một ứng dụng web hỗ trợ thông báo đẩy thực hiện như sau:

  • thăm khách hàng ứng dụng
  • nhân viên dịch vụ mang lại một thiết bị đầu cuối thông báo push
  • Khách hàng gửi endpoint đến máy chủ
  • Máy chủ kết hợp điểm cuối với người dùng hiện tại mà điểm cuối đã được tạo cho
  • Mỗi khi có điều gì đó mà ứng dụng của bạn sẽ nói là thông báo wort hy sẽ xảy ra, máy chủ sẽ lấy (các) điểm cuối thông báo đẩy được liên kết với người dùng và truy cập thông báo đẩy tới bất kỳ thiết bị nào của người dùng (có thể với trọng tải dữ liệu trong Chrome 50+, v.v.)

Về cơ bản Tôi chỉ muốn xác nhận rằng những suy nghĩ thực hiện chung của tôi với công nghệ này là chính xác, nếu không tôi sẽ nhận được phản hồi nếu tôi thiếu điều gì đó.

+0

Xin lỗi, không rõ câu hỏi của bạn là gì, bạn có thể viết lại cụm từ có sự nhầm lẫn/lo ngại không? Chúc mừng, Matt –

+0

@GauntFace Xin lỗi! Tôi viết lại cho rõ ràng. Tôi chỉ muốn xem suy nghĩ của tôi về việc triển khai ứng dụng này trong ứng dụng có chính xác hay không hoặc nếu có một số cách đơn giản hơn để thực hiện điều đó –

Trả lời

8

Bạn có khá nhiều tiếng nổ, có một số chi tiết cụ thể không hoàn toàn đúng (nhưng điều này phần lớn là phrasing và có thể được thực hiện theo sở thích cá nhân).

  • thăm khách hàng ứng dụng
  • Đăng ký một Worker Dịch vụ mà bạn muốn sử dụng cho push nhắn
  • Sử dụng đăng ký lao động dịch vụ để đăng ký người sử dụng để đẩy tin nhắn, lúc này user agent sẽ cấu hình một thiết bị đầu cuối + các giá trị bổ sung để mã hóa tải trọng (Nếu tác nhân người dùng hỗ trợ nó).
  • Khách hàng gửi điểm cuối đến máy chủ
  • Máy chủ lưu trữ điểm cuối và dữ liệu để sử dụng sau này (Máy chủ có thể kết hợp điểm cuối với người dùng hiện tại nếu máy chủ nếu ứng dụng web có tài khoản người dùng).
  • Khi bao giờ máy chủ muốn gửi thông báo tới người dùng, nó sẽ lấy điểm cuối thích hợp và gọi họ sẽ đánh thức nhân viên dịch vụ sau đó có thể hiển thị thông báo.

Hỗ trợ tải trọng trong Chrome 50+ và tại thời điểm viết tải trọng hỗ trợ trong Firefox, nhưng có 3 phiên bản mã hóa khác nhau được sử dụng cho tải trọng trong 3 phiên bản Firefox khác nhau, vì vậy tôi sẽ đợi cho câu chuyện hỗ trợ tải trọng được đưa ra một chút trước khi sử dụng nó/dựa vào nó.

+0

Cảm ơn bạn! Đẩy điểm cuối thông báo được liên kết với một nhân viên dịch vụ cụ thể đúng không? Một điều tôi đang nhầm lẫn là, nói một người dùng tải trang web trên hai thiết bị khác nhau (tạo ra hai điểm cuối thông báo đẩy khác nhau mà máy chủ lưu giữ).Nói cập nhật trang web đến và nhân viên dịch vụ mới được đăng ký (điểm cuối thông báo đẩy mới được tạo), Bây giờ người dùng có khả năng 4 điểm cuối được liên kết với họ trong cơ sở dữ liệu, nhưng chỉ có hai điểm hợp lệ ... mẫu này tiếp tục và chúng tôi có 50 thiết bị đầu cuối/người dùng chỉ có một cặp được "cập nhật" ... dường như có lợi cho hàng tấn bị rò rỉ –

+0

Có vẻ như khó xử lý điểm cuối bên phải vì điểm cuối mới được tạo ra –

+0

Vài điều về điều này: - Tác nhân người dùng có thể không nhất thiết phải phát hành đăng ký đẩy mới (Điểm cuối + thông tin khác) trên nhân viên dịch vụ mới - Khi bạn gửi tin nhắn push bằng cách sử dụng thông số đẩy, phản hồi sẽ cho bạn biết liệu đăng ký vẫn hợp lệ hay không trường hợp nào bạn có thể làm rõ những cái cũ - Nếu nó trở thành một mối quan tâm/vấn đề, có thể theo dõi các đăng ký không có trước đó bằng cách sử dụng một cái gì đó như indexdb và phát hiện thay đổi và xóa đăng ký push cũ với –

Các vấn đề liên quan