2016-05-22 38 views
5

Poszukuję prostej implementacji, aby przesłać zmiany z bezpłatnej relacyjnej bazy danych (PostgreSQL, MySQL, SQLite itp.) Do przeglądarek klientów za pośrednictwem WebSocket lub WebPush.
Chcę uniknąć całego ekosystemu JavaScript po stronie serwera (Node.js, npm & cie) i baz danych NoSQL.
Wszystkie muszą być hostowane na serwerach mojej firmy, nie mogę korzystać z usług stron trzecich.WebSocket z bezpłatnym RDMBS (PostgreSQL, SQLite, itp.) I bez ekosystemu JavaScript

Znalazłem te ciekawe rozwiązania:

Czy znasz inne sposoby, aby to zrobić?
Czy PostgreSQL jest bardziej odpowiedni dla RDBMS?
Czy można to osiągnąć za pomocą bazy danych SQLite?
Czy można wykorzystać umiejętności Apache lub NGinx?

+0

Zaktualizowałem moją odpowiedź; Zrobiłem projekt o nazwie postgrest2websocket, który może być dla ciebie interesujący. –

Odpowiedz

2

Aktualizacja 23.01.17: Napisałem aplikację o nazwie postgresql2websocket w celu wysłania powiadomienia PostgreSQL nad WebSocket korzystających z asyncio Python 3 + aiohttp + asyncpg https://github.com/frafra/postgresql2websocket; można połączyć go z PostgREST, aby mieć zarówno standardowe interfejsy API REST, jak i aktualizacje w czasie rzeczywistym za pomocą WebSockets.

O ile wiem, nie ma rozszerzenia serwera HTTP do korzystania z baz danych SQL z Websockets bez niczego w środku.

Możesz używać Pythona po stronie serwera, na przykład: Real Time Web Apps with (just) Python and Postgres. Myślę, że można go poprawić dzięki aiopg. Jeśli nie potrzebujesz Websockets, możesz po prostu użyć ngx_postgres.

Jeśli podoba Ci się Django, Django Channels będzie probably included in Django 1.10 (warstwa Redis/in-memory/... dla kanałów i backend SQL).

Możesz użyć SQLite, ale pamiętaj, że musisz zaimplementować oddzielny mechanizm publikowania/subskrypcji po stronie serwera (jak robi to kanał Django), ponieważ SQLite go nie ma.

Jeśli interesuje Cię tylko pub/sub przez Websockets, możesz użyć Webdis (rozwiązanie oparte na Redis): byłoby to prawdopodobnie lżejsze niż pełna baza danych SQL.