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
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.