CloudFlare 和 socket.io
Posted
技术标签:
【中文标题】CloudFlare 和 socket.io【英文标题】:CloudFlare and socket.io 【发布时间】:2016-10-27 10:37:33 【问题描述】:我正在使用 CloudFlare 来实现 REST API。我需要添加一些通过 Node.JS 上的 socket.io 实现的通知。 当 socket.io 使用实时连接来保持客户端更新时,它会工作,因为连接是在服务器-客户端之间建立的,但是当 socket.io 进行轮询时会发生什么? CloudFlare 是否总是为每个客户端使用相同的服务器?
【问题讨论】:
【参考方案1】:WebSockets 由 IETF 在 RFC 6455 中标准化,这使您可以避免轮询行为,而是直接维护从服务器到客户端的双向连接。
虽然您现有的堆栈(Node.js、Socket.io 和 CloudFlare)支持轮询行为; Socket.io 可以使用 WebSockets 和CloudFlare now supports WebSockets!
WebSockets 不使用传统的轮询,而是充当全双工通信协议。可能时 Socket.io 将 seek to use WebSockets when it can 但在可能时回退到轮询。
那么你需要记住什么?使用 WebSocket 时,请务必使用 CloudFlare 可接受的端口。
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
using CloudFlare with WebSockets 有一个常见问题解答。
【讨论】:
以上是关于CloudFlare 和 socket.io的主要内容,如果未能解决你的问题,请参考以下文章
使用 CloudFlare、Heroku 和 RoR 时如何设置真实 IP 地址?
nginx、aws 和 cloudflare 的 cors 问题
使用 Google Domains 和 Cloudflare 时转发电子邮件 [关闭]