Do I need websockets?


#1

I tried using my app through CloudFlare today, and I got a WebSocket connection error. But the app still functions, and if I update the the database, data changes about as quickly as it does when WebSockets is working.

What am I missing out on, then?


#2

Hey , take a look this post from @arunoda ,

https://meteorhacks.com/cloudflare-meets-meteor

Hope it Helps!


#3

Thanks! I tried adding "DISABLE_WEBSOCKETS": 1 into my mup.json file and deployed. The performance hit isn’t terrible, it seems to poll about every 15 seconds or so. And my app is not necessarily a “has to be 100% real-time” app, so I might go this route for the benefits of CloudFlare.


#4

Hi , Have you tried Option 2 on the same article ? Basically , you have to “bypass” Cloudflare for managing websockets on your own .

If you have the chance , i recommend you to use your own nginx setup , and just configure SSL certificates .

I’m finishing some documentation about this ( nginx setup for meteor with SSL support and letsencrypt certs ) , so stay tuned . I’ll post it once i’ve finished it.


#5

So you’re saying:

  • myapp.com routed through CloudFlare, using their SSL
  • ddp.myapp.com bypassing CloudFlare, using purchased (or letsencrypt) SSL

That could work, and would definitely help against threats, since it would be pretty difficult for someone to discover the ddp subdomain.

I tried letsencrypt, but it’s not working properly for me. Still in closed beta. I imagine they’ll address many of the issues by the time open beta starts next month.


#6

Hi,

Letsencrypt as you said, is still in beta , and the CA which signs your certificate is not trusted yet ( Maybe on December ) . So this has some implications as you cannot test it in mobile apps ( without including those certificates manually ) . So in other words not ready yet for production … But ,

If you want to be prepare and you want to try letsencrypt , you can do it ( with some effort from your side ) .

Some tips for installing letsencrypt on a ubuntu box ( Tested on Digital Ocean Droplet ):

git clone https://github.com/letsencrypt/letsencrypt.git

cd letsencrypt

./bootstrap/ubuntu.sh

virtualenv --no-site-packages -p python2 venv

./venv/bin/pip uninstall setuptools
./venv/bin/pip install setuptools
./venv/bin/easy_install acme
./venv/bin/python setup.py install

If everything went ok, at this point you are ready to ask for a SSL certificate:

./venv/bin/letsencrypt --email youremail@yoursite.com --domains yoursite.com --authenticator standalone auth

Later on, you have to setup nginx ( mine is 1.9.6 )

Please wait until i have some time to publish all documentation . The good news is i’ve already written it , but the bad news is i have to translate to english yet ( Now is in spanish ) .

I’ll try to publish ASAP ,

Hope this helps , at least to get letscrypt working :wink: