2016-06-24 20 views
0

Ich verwende CloudFlare, um eine REST-API zu implementieren. Ich muss einige Benachrichtigungen hinzufügen, die mit socket.io auf Node.JS implementiert werden. Wenn socket.io eine Live-Verbindung verwendet, um den Client auf dem neuesten Stand zu halten, wird es funktionieren, weil die Verbindung zwischen dem Server-Client hergestellt wird, aber was passiert, wenn socket.io abfragt? Verwendet CloudFlare für jeden Client immer denselben Server?CloudFlare und socket.io

Antwort

2

WebSockets werden von der IETF in RFC 6455 standardisiert. Dies ermöglicht es Ihnen, das Abrufverhalten zu vermeiden und stattdessen direkt eine bidirektionale Verbindung vom Server zum Client aufrechtzuerhalten.

Während Ihr vorhandener Stapel (Node.js, Socket.io und CloudFlare) Abrufverhalten unterstützt; Socket.io kann WebSockets und CloudFlare now supports WebSockets verwenden!

WebSockets verwenden kein herkömmliches Polling und fungieren stattdessen als Vollduplex-Kommunikationsprotokoll. Wenn es möglich ist Socket.io wird seek to use WebSockets when it can aber Fallback zu Abfragen, wenn es möglich ist.

Also, was müssen Sie beachten? Achten Sie bei der Verwendung von WebSockets darauf, Ports zu verwenden, die für CloudFlare akzeptabel sind.

For requests made via HTTP/WS: 

80 
8080 
8880 
2052 
2082 
2086 
2095 

For requests made via HTTPS/WSS: 

443 
2053 
2083 
2087 
2096 
8443 

Es gibt eine FAQ für using CloudFlare with WebSockets.