2015-05-30 18 views
9

Dường như thông báo Đẩy cuối cùng có thể sử dụng được cho web-apps! Thật không may, điều này đòi hỏi https cho ServiceWorker, mà không phải tất cả các trang web có thể có.Có thể thông báo đẩy trong html5 mà không có trang web https đầy đủ không?

Một điều tôi nhận thấy trong spec nó đề cập đến:

if r's url's scheme is not one of "http" and "https", then: Throw a TypeError."

Vì vậy, tôi đang bối rối - có thể trang web là http, miễn là nó bao gồm một ServiceWorker đó là từ https? Ví dụ: mydomain.com có ​​thể bao gồm https serviceworker từ https://anotherdomain.com?

Tiêu chuẩn khác, web-api simple-push, không đề cập đến yêu cầu https (có thể thiếu sót trong tài liệu?) Và "Trải nghiệm người dùng trên Firefox Desktop chưa được rút ra". Tài liệu hướng dẫn về lỗi thời này, hay là chỉ thực sự được hỗ trợ trong FirefoxOS ??

+0

là người phục vụ có thể có từ https? –

Trả lời

0

Văn bản bạn trích dẫn từ spec là từ the Cache.addAll() section (5.4).

Dưới đây là tóm tắt của addAll() trên MDN:

Phương pháp addAll() của giao diện bộ nhớ cache mất một mảng của URL, lấy và thêm các đối tượng phản hồi kết quả vào bộ nhớ cache đã cho. Các đối tượng yêu cầu được tạo trong quá trình truy xuất trở thành các khóa cho các hoạt động phản hồi được lưu trữ.

công nhân dịch vụ có thể yêu cầu & URL bộ nhớ cache mà là một trong hai HTTP hoặc HTTPS, nhưng một công nhân dịch vụ riêng của mình chỉ có thể làm việc trong phạm vi đã đăng ký của mình (mà phải là HTTPS).


Đẩy đơn giản không liên quan đến Nhân viên dịch vụ; có vẻ như so sánh với các phương pháp tiếp cận các nền tảng khác đã thực hiện:

1

Simple-push, đó là giải pháp đẩy hiện trong Firefox OS không có bất cứ điều gì để làm với ServiceWorkers .

Thế hệ tiếp theo của push, thực hiện bởi cả Google và Mozilla sẽ được thực hiện thông qua ServiceWorkers:

Trong trường hợp đó có, nội dung của bạn sẽ cần để được phục vụ qua HTTPS.

Có lẽ bạn sẽ quan tâm đến các sáng kiến ​​LetsEncrypt:

Một thẩm quyền cấp giấy chứng nhận mới sẽ giúp các nhà phát triển để chuyển nội dung của họ qua HTTPS.

Cũng chỉ vì mục đích phát triển, cả việc triển khai Google và Mozilla của ServiceWorkers cho phép bạn bỏ qua việc kiểm tra nội dung an toàn, nếu bạn phát triển chống lại localhost. Trong trường hợp của Mozilla, bạn sẽ cần phải bật cờ:

devtools.serviceWorkers.testing.enabled: true 

Nhưng một lần nữa điều này sẽ chỉ cho sự phát triển, và AFAIK, Mozilla đẩy hạ cánh hoặc là về với đất, và sẽ có mặt trong đêm xây dựng , bạn có thể làm theo công việc ở đây:

+0

Vì vậy, một là hiện tại ... nhưng chỉ trong FirefoxOS, một là "thế hệ tiếp theo" của khả năng đẩy, và là HTTPS chỉ và chỉ trong Chrome ...? – NoBugs

+0

'thế hệ tiếp theo', sẽ chỉ https, nhưng sẽ được hỗ trợ bởi tắc kè và nhấp nháy (có nghĩa là Firefox, Chrome và Opera) –

+0

Câu trả lời này là sai, thay đổi 'devtools.serviceWorkers.testing.enabled: true' không ảnh hưởng đến lỗi 'Thao tác không an toàn.'. –

1

Không, thế hệ mới của các thông báo đẩy (tức Push API) yêu cầu HTTPS.

Nếu bạn cần thêm thông báo đẩy vào trang web không có HTTPS, bạn có thể sử dụng dịch vụ của bên thứ ba như Pushpad cung cấp thông báo thay cho bạn.

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