Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Push, или Как разрядить чужой телефон
Search
Moscow Python Meetup
PRO
June 23, 2016
Programming
740
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Push, или Как разрядить чужой телефон
Алина Баймашева @ MoscowPython 36
Moscow Python Meetup
PRO
June 23, 2016
More Decks by Moscow Python Meetup
See All by Moscow Python Meetup
Moscow Python Meetup №112. Как поселить ИИ агентов в event driven архитектуре
moscowdjango
PRO
0
19
Moscow Python Meetup №112. Анатомия современных трансформеров: эволюция позиционных эмбеддингов
moscowdjango
PRO
0
12
Moscow Python Meetup №111. Как мы изобретали Temporal, пытаясь просто создать приложение
moscowdjango
PRO
0
130
Moscow Python Meetup №110. Артём Тарасов (Альфа-Банк, Senior Engineer). Менторство как допинг: Как прокачать свои хард-скиллы, обучая других
moscowdjango
PRO
0
98
Moscow Python Meetup №110. Алёна Тямейкина (Островок.ру, Python Developer). Автоматизации процессов разработки
moscowdjango
PRO
0
110
Moscow Python Meetup №110. Адриан Макриденко (ГК Астра Линукс, разработчик серверной части). Токены авторизации: почему JWT легко использовать неправильно и как это исправляет PASETO?
moscowdjango
PRO
0
130
Moscow Python Meetup №109. Георгий Дьячков (Альфа банк, Главный разработчик). Векторные базы в агентной архитектуре и как изменятся вопросы на собеседованиях в 2026
moscowdjango
PRO
0
140
Moscow Python Meetup №109. Евгений Блинов (The Mutating Company). Ближайшее будущее мутационного тестирования на Python
moscowdjango
PRO
0
130
Moscow Python Meetup №108. Воркшоп "Построение AI-агента: Говори с данными на языке бизнеса"
moscowdjango
PRO
0
200
Other Decks in Programming
See All in Programming
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
220
Next.js: The final boss of Web Performance
guaca
0
250
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
170
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
220
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
すこし踏み込む CancellationToken
htkym
2
1.7k
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
140
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
160
The Rails Doctrine Decade
koic
2
590
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
How to train your dragon (web standard)
notwaldorf
96
6.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
520
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
570
Music & Morning Musume
bryan
48
7.4k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
410
What's in a price? How to price your products and services
michaelherold
247
13k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Raft: Consensus for Rubyists
vanstee
142
7.8k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
Transcript
Push или как разрядить чужой телефон
RAMBLER&Co Рамблер/недвижимость python dev
[email protected]
Алина Баймашева
None
None
40 50+ 700 1700+ млн человек суммарная аудитория группы количество
изданий, сервисов и проектов разработчиков человек в хорошей компании
Контакты В группе компаний Rambler&Co всегда есть открытые вакансии для
тех, кто хочет профессионально расти и развиваться, занимаясь тем, что по-настоящему нравится
[email protected]
www.rambler-co.ru/jobs
Сайт
Мобильное приложение
✴ получение актуальной информации пользователями ✴ отправлять пуш-сообщения: много и
часто ✴ отправлять модно асинхронно ✴ красивый код ✴ универсальность и простоту использования Миссия
Желания Push- сервис мобильные устройства push-сообщение
Выбор Google Cloud Messaging https://goo.gl/BTGCZc Apple Push Notification Service https://goo.gl/dWW4XY
Google Cloud Messaging
Взаимодействие Push- сервис мобильные устройства GCM API KEY SENDER ID
Ингредиенты ✴ python 3.5 ✴ asyncio ✴ aiohttp ✴ postgresql
✴ aiopg
asyncio Event Loop aiohttp Web-Server aiopg DB GCM client GCM
iOS Android Push- message Архитектура
GCM и мобильное приложение iOS Android GCM Registration Token push-сообщение
Push-сервис и мобильное приложение aiohttp Web-Server iOS Android POST /tokens/
Push-сервис и GCM GCM GCM client POST /push/ GCM-ответ https://gcm-http.googleapis.com/gcm/send
Content-Type:application/json Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
Push-сообщение
Push-сервис и GCM-ответ DB GCM client обновить token удалить token
{"message_id": "1:2342", "registration_id": "epeG1sjqiYw:GH8k..."} {"error": "NotRegistered"} GCM-ответ GCM-ответ
HTTP API HTTP API aiohttp Web-Server POST /tokens/ PUT /tokens/
DELETE /tokens/ POST /send-push/
Пошлем пуш ?
GCM ✴ поддержка только iOS и Android, Chrome ✴ сильное
различие в пуш-формате между iOS и Android ✴ сообщение с payload 4kb ✴ сообщение notification 2kb ✴ максимальное время жизни недоставленного пуша 4 недели Нюансы Ограничения
Производительность
Итоги ✴ модно молодежно - asyncio ✴ бесплатный и простой
сервис рассылки пушей
Спасибо за внимание