Триггеры в Parse Server с использованием Swift

Недавно мне было поручено создать простое приложение чата для iOS с использованием Swift .. Итак, у меня есть готовый и работающий сервер синтаксического анализа! Все, что я хочу знать, это как использовать триггеры.

Допустим, я открыл беседу и только что получил новое сообщение. Как мне его получить, не проверяя постоянно наличие новых сообщений? Я видел, что облачный код, вероятно, лучший вариант, но если это так, практично ли это? Я имею в виду, если у меня 5000 пользователей, и они постоянно болтают, будет ли это хорошо работать?

Заранее спасибо!


person Sotiris Kaniras    schedule 25.08.2016    source источник


Ответы (1)


Вы хотите использовать компонент Parse LiveQuery.

  1. Добавьте Live Query в конфигурацию вашего сервера:

    let api = new ParseServer({
      ...,
      liveQuery: {
        classNames: ['Test', 'TestAgain']
      }
    });
    
    // Initialize a LiveQuery server instance, app is the express app of your Parse Server
    let httpServer = require('http').createServer(app);
    httpServer.listen(port);
    var parseLiveQueryServer = ParseServer.createLiveQueryServer(httpServer);
    
  2. Установите библиотеку Parse LiveQuery в качестве модуля в свой проект (pod 'ParseLiveQuery').

  3. Подпишитесь на события:

    let myQuery = Message.query()!.where("user", equalTo: PFUser.currentUser()!)
    let subscription: Subscription<Message> = myQuery.subscribe()
    
  4. Обработка событий:

    subscription.handleEvent { query, event in
        // Handle event
        // This callback gets called every time an object is created, updated, deleted etc.
    }
    
person Andrey Gordeev    schedule 26.08.2016
comment
Я уже пробовал их, но так и не смог заставить их работать! События вообще не реагируют .. Я думаю, что это скоро станет общедоступным .. - person Sotiris Kaniras; 26.08.2016
comment
Использую для своего проекта, работает нормально. Если у вас возникли проблемы с Parse LiveQuery, задайте другой вопрос, связанный с этим. Но ваш текущий вопрос может быть решен с помощью Parse LiveQuery. Это то, для чего он предназначен. - person Andrey Gordeev; 26.08.2016
comment
Хорошо .. Кстати, если отложить в сторону Live Queries, можно ли решить мою проблему с помощью облачного кода? - person Sotiris Kaniras; 27.08.2016
comment
Итак, я попробовал LiveQueries еще раз, и они наконец сработали !!! Они кажутся хорошим решением, хотя я заметил некоторые проблемы ... (например, сравнение указателей) В любом случае, насколько эффективны, по вашему мнению, они? Я имею в виду, что в двухъядерной машине с оперативной памятью 2 ГБ, сколько пользователей, по вашему мнению, она может поддерживать? - person Sotiris Kaniras; 02.09.2016
comment
@SotirisKaniras понятия не имею, мое приложение еще не работает. - person Andrey Gordeev; 02.09.2016
comment
@SotirisKaniras, если мой ответ вам помог, отметьте его как ответ. - person Andrey Gordeev; 02.09.2016