1

Je dois utiliser Websocket dans mon application API Rails (uniquement). Il n'y a pas de rendu côté serveur pour les pages. L'application est un backend JSON uniquement pour Angular et Xamarin. J'ai vu que beaucoup de tutoriels utilisent coffescript comme client ActionCable dans Rails, mais ce n'est pas mon cas.Client Websocket pour l'application API ActionCable dans Rails

La question est: comment utiliser ActionCable comme API uniquement, en dehors de la machine à café de Rails, comme pour les clients Android, iOS, Angular et React?

J'ai trouvé des ressources différentes et utiles mais je suis encore un peu confus.

1: ActionCable usage for Rails API - cela me semble le meilleur, mais comment puis-je trouver toutes les commandes JSON échangées par le framework ActionCable?

2: Similar Question to the mine

3: Rails API Websocket GEM - ok, n'est pas ActionCable, mais ce gars-là avait compilé coffeescript en JS et porté dans projet. Pas utile pour le développement Mobile.

S'il existe différentes solutions ou de meilleures connaissances, s'il vous plaît dites-moi. J'ai besoin de "pirater" ça pour le faire fonctionner.

EDIT: J'ai trouvé aussi ce repo action-cable-js mais comment l'intégrer?

+0

L'utilisation de Websockets sans ActionCable sera-t-elle une option? Si c'est le cas, considérez le ['iodine' gem] (https://github.com/boazsegev/iodine). Il devrait également améliorer les performances de manière significative (par rapport à ActionCable). – Myst

+0

@Myst que vous pour votre réponse. La stratégie n'est pas "si facile" car le backend est constitué de N containers pour Rails, load balancé par Nginx. Donc, il y a un (ou peut-être M, équilibré en charge) séparé des serveurs ActionCable, exécuté en tant que serveur autonome. Dans ce cas, je pense que __iodine__ ou ActionCable est une question de performance, mais j'ai besoin de repenser toute l'application. Je vais vérifier la gemme profondément. Je vous remercie! –

Répondre

1

J'espère que ma réponse pourrait être utile pour n'importe qui. J'ai finalement découvert une bibliothèque appelée actioncable-js qui m'a aidé dans le projet Angular.

Mais ce n'est pas suffisant. Pour les projets Mobile, j'ai besoin d'utiliser des commandes de "bas niveau" pour interagir avec le serveur Action Cable.

Le protocole est ici: protocol.

Mais si vous avez besoin de plus sur vous devriez regarder profondément à l'intérieur de la gemme.