Как отправлять/получать мобильные уведомления с помощью Django и React Native?
Я реализую уведомления для мобильного устройства.
Я успешно настроил Firebase в своем проекте и могу отправлять push-уведомления пользователям. Но моя проблема заключается в том, что на iOS, когда пользователь отказывается от прав на уведомление, мне все еще нужен способ, чтобы уведомление появлялось, когда пользователь открывает приложение.
После небольшого исследования я обнаружил, что могу сделать это с помощью Django Channel Layers, но все еще немного не понимаю, как именно это работает.
Насколько я понимаю, на стороне клиента я настраиваю WebSockets, открываю WebSocket-соединение и отправляю данные, что я и могу сделать.
Затем на стороне сервера я настраиваю Django Channels, слушаю открытое соединение и получаю данные, что мне также удается сделать.
Мой вопрос в том, как мне отправить данные целевому пользователю?
Вот мой код:
Реакция нативная:
const ws = new WebSocket('ws://ws/notif-socket/');
useEffect(() => {
ws.onopen = () => {
console.log('Connected!');
};
ws.onerror = e => {
console.log(e.message);
};
}, []);
const data = {
to_user: user_id.toString(),
title: 'Notification',
body: 'User_2 liked your post',
image: imageURL,
};
ws.send(JSON.stringify(data));
Django:
# models.py
class Notification(models.Model):
from_user = models.ForeignKey(
User, on_delete=models.CASCADE, related_name='from_user')
to_user = models.ForeignKey(
User, on_delete=models.CASCADE, related_name='to_user')
title = models.CharField(max_length=100)
body = models.TextField(default=None, blank=True)
image = models.CharField(max_length=300, default=None, blank=True)
date = models.DateTimeField(auto_now_add=True)
# consumers.py
class NotificationConsumer(WebsocketConsumer):
def connect(self):
self.accept()
def receive(self, text_data):
data = json.loads(text_data)
print(data)
Следует ли мне использовать Django Channels для этого случая использования?
Оцените любую помощь, спасибо!!!