2016-12-12 31 views
5

Tôi đang tạo ứng dụng dòng lệnh trong node.js và muốn nhận thông báo đẩy GCM (ứng dụng dòng lệnh sẽ tương tác với cùng một bộ dịch vụ iOS/Ứng dụng Android sử dụng, do đó muốn sử dụng cùng một dịch vụ thông báo).Nhận thông báo đẩy GCM trong ứng dụng node.js

Cho rằng GCM có thể được sử dụng trên iOS (và do đó không phải là dành riêng cho Android) Tôi hy vọng nó cũng có thể được sử dụng từ node.js.

Tôi đã xem nhiều bài viết về việc gửi thông báo đẩy từ node.js, nhưng không thể tìm thấy bất kỳ điều gì về việc sử dụng node.js trên đầu nhận.

+0

Bạn có kiểm soát "nguồn" máy chủ ứng dụng? –

Trả lời

1

Tôi không nghĩ rằng nó có thể (theo một cách đơn giản) ...

Android/iOS có một hệ điều hành đằng sau với một dịch vụ mà giao tiếp với GCM ...

Nếu bạn đang cố gắng chạy một công cụ CLI, bạn sẽ cần phải thực hiện một dịch vụ trên đầu hệ điều hành (Linux, Windows Mac) để nó có thể nhận được thông báo.

+0

Cảm ơn, @Lucas Katayama. Có thực sự một dịch vụ GCM tích hợp tồn tại trên tất cả các thiết bị iOS không? Tôi đã giả định vì nó không phải từ Apple mà nó phải đến chỉ khi một ứng dụng với sdk GCM được cài đặt. – skb

+0

Nó có thể là một cái gì đó như ... Tôi là một nhà phát triển Android ... không biết nhiều về ios ... Nhưng giả sử rằng họ là tương tự ... Tôi nghĩ rằng ios có một dịch vụ mà giao tiếp với một máy chủ trong một giống như GCM ... –

1

GCM gửi thông báo đối với mã thông báo thiết bị được tạo từ thiết bị iOS/Android khi chúng được đăng ký với máy chủ thông báo đẩy. Nếu bạn đang nghĩ đến việc nhận được các thông báo mà không cần thiết bị, nó về cơ bản là không chính xác.

+0

Tôi không nói rằng tôi muốn làm điều đó mà không có mã thông báo thiết bị. :) Tôi cho rằng đó sẽ là một phần của quá trình cần thiết. – skb

9

tôi nghĩ rằng nếu bạn phải gửi thông báo đẩy, để ios và Andriod thì FCM là tốt hơn sau đó gcm sử dụng này

router.post('/pushmessage', function (req, res) { 
    var serverKey = '';//put server key here 
    var fcm = new FCM(serverKey); 
    var token = "";// put token here which user you have to send push notification 
    var message = { 
     to: token, 
     collapse_key: 'your_collapse_key', 
     notification: {title: 'hello', body: 'test'}, 
     data: {my_key: 'my value', contents: "abcv/"} 
    }; 
    fcm.send(message, function (err, response) { 
     if (err) { 
      res.json({status: 0, message: err}); 
     } else { 
      res.json({status: 1, message: response}); 
     } 
    }); 
}); 
0

Tôi tin rằng bạn có thể sử dụng người lao động dịch vụ.

Đẩy dựa trên nhân viên dịch vụ vì nhân viên dịch vụ hoạt động ở chế độ nền. Điều này có nghĩa là mã thời gian duy nhất được chạy cho một thông báo đẩy (nói cách khác, thời gian duy nhất pin được sử dụng) là khi người dùng tương tác với một thông báo bằng cách nhấp vào nó hoặc đóng nó. Nếu bạn không quen thuộc với họ, hãy xem phần giới thiệu của nhân viên dịch vụ. Chúng tôi sẽ sử dụng mã công nhân dịch vụ trong các phần sau này khi chúng tôi chỉ cho bạn cách triển khai các thông báo đẩy và thông báo.

Vì vậy, về cơ bản có dịch vụ nền đang chờ đẩy và đó là những gì bạn sắp xây dựng.

Hai công nghệ

Đẩy và sử dụng thông báo khác nhau, nhưng bổ sung, API: push được gọi khi một thông tin cung cấp máy chủ để một nhân viên phục vụ; thông báo là hành động của nhân viên dịch vụ hoặc tập lệnh trang web hiển thị thông tin cho người dùng.

self.addEventListener('push', function(event) { 
    const promiseChain = getData(event.data) 
    .then(data => { 
    return self.registration.getNotifications({tag: data.tag}); 
    }) 
    .then(notifications => { 
    //Do something with the notifications. 
    }); 
    event.waitUntil(promiseChain); 
}); 

https://developers.google.com/web/fundamentals/engage-and-retain/push-notifications/handling-messages

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