Door
Mark Markson
op 31-05-2015 01:09
gewijzigd op 31-05-2015 01:16
2.479 views
Ik ben van plan om een social media website te bouwen (als een project voor school). Ik heb al een databasemodel gemaakt die redelijk ingewikkeld is, hierdoor kan ik niet een tool als MongoDB gebruiken. Voor deze website moet het mogelijk zijn om berichten naar elkaar te sturen en een notificatie te onvangen. Ik heb een beetje onderzoek gedaan en heb gekeken naar:
Welke van deze zouden jullie aanbevelen? Ik heb een stuk of 5 relationele tabellen, dus gebruik maken van iets als Mongo of Moose is (volgens mij) niet mogelijk.
Feitelijk gezien heb ik dus een verbinding nodig die de hele tijd openstaat en zoekt naar updates. Als deze update gevonden is krijgt de gebruiker een notificatie en kan hij het bericht lezen. Ratchet vond ik een beetje omslachtig werken voor wat ik wilde. Node.js en Socket.io maken veel gebruik van MongoDB. Pusher app kost geld, en niet zo'n beetje ook.
Waarom niet met Ajax elke 2 seconden laten kijken of er updates zijn, en dan binnenhalen?
Zo doet Twitter (en 9Gag etc) dat ook in hun mobiele apps. Daar vliegen de berichten ook niet continue binnen, maar om de paar seconden (want soms 1, soms 5 berichten, niet 1 voor 1).
Als je echt heel snel je bericht moet zien (in minder dan 1 seconde na posten), dan pas lijkt mij pushen nodig.
Leuk als je verkeersdata oid gaat meten, maar dan komt de informatie van sensoren en niet van mensen (wat berichten wel doen).
Ik ken alleen node.js en socket.io en heb eigenlijk te weinig ervaring met beide om deze af te keuren voor je gebruik. Het zou er waarschijnlijk prima mee gaan.
Het probleem als je dat doet is dat je dan net zo goed de pagina kan verversen. Als er 50 mensen online zijn die je applicatie hebben openstaan en je stuur een AJAX request om de 30 secondes, dan kan dit nogal zwaar zijn voor de server. Daarom werk ik liever met iets van websockets (weet nog niet welke technologie ik wil gaan gebruiken hiervoor)...Iets van een verbinding die de hele tijd openstaat en een melding krijg als er iets nieuws is.
Niemand die ervaring heeft met Node.js en de Mysql extension? Ik wil iets van een notificatie systeem maken zonder om de zoveel tijd te moeten kijken met AJAX.
Nu heb ik regelmatig 40 bezoekers. Die bekijken 20 van zulke pagina's, meestal binnen 3 minuten.
(40 x 73 x 20) / (3*60)= ... 324 requests per seconde.
Wat is het probleem? Geen!
Ik zou zeggen begin met een stresstest te bouwen (of gebruik bestaande benchmarktools) om te testen wat je server aankan en beslis op basis van je bevindingen. Maak het jezelf niet te lastig , een server kan best een stootje hebben.