Я навчився невеликого уроку (важкий шлях). Я зробив додаток для стискання чисел, який працює на хмарних сервісах Ubuntu AWS EC2 (використовує потужні графічні процесори), і мені хотілося зробити фронт-енд для того, щоб спостерігати за його прогресом в режимі реального часу.Через те, що йому потрібні дані в режимі реального часу, було очевидно, що мені потрібні веб-розетки, щоб натиснути оновлення.
Це почалося з доказу концепції, і працювало чудово. Але тоді, коли ми хотіли зробити це доступним для публіки, нам довелося додати сеанс користувача, тому нам були потрібні функції входу. І як би ви не дивилися на це, вебсокет повинен знати, з яким користувачем він має справу, так ми взяли ярлик використання веб-сокетів для аутентифікації користувачів . Це здавалося очевидним, і це було зручно.
Нам фактично довелося провести тишу деякий час, щоб зробити зв’язки надійними. Ми розпочали з деяких дешевих навчальних посібників для веб-сокетів, але виявили, що наша реалізація не змогла автоматично підключитися під час розриву зв’язку. Це все покращилося, коли ми перейшли на socket-io. Socket-io - це обов’язково!
Сказавши все це, чесно кажучи, я думаю, що ми пропустили деякі чудові функції socket-io.Socket-io може запропонувати ще багато, і я впевнений, якщо ви врахуєте це у своєму первісному дизайні, ви можете отримати більше від нього. На відміну від цього, ми просто замінили старі веб-розетки функціями websocket socket-io, і це було все. (немає кімнат, немає каналів, ...) Перероблення могло б зробити все більш потужним. Але ми на це не встигли. Це щось запам'ятати для нашого наступного проекту.
Далі ми почали зберігати все більше даних (історія користувача, рахунки-фактури, транзакції, ...). Ми зберігали все це в базі даних AWS dynamodb, і ПРОТИ, ми використовували socket-io для передачі операцій CRUD від переднього кінця до бекенда. Я думаю, що ми помилилися там. Це була помилка.
- Тому що незабаром ми з'ясували, що хмарні сервіси Amazon (AWS) пропонують чудові інструменти для балансування / масштабування навантаження для RESTful додатків .
- Зараз у нас складається враження, що нам потрібно написати багато коду для виконання рукостискань операцій CRUD.
- Нещодавно ми реалізували інтеграцію Paypal. Нам вдалося змусити його працювати. Але знову ж таки, всі підручники роблять це за допомогою RESTful API . Нам довелося переписувати / переосмислювати їх приклади, щоб реалізувати їх за допомогою веб-розетки. Ми дістали це працювати досить швидко, хоча. Але відчувається, що ми йдемо проти течії.
Сказавши все це, ми будемо жити наступного тижня. Ми потрапили вчасно, все працює. І це швидко, але чи буде масштабуватися?