Sophie

Sophie

distrib > Mageia > 7 > armv7hl > media > core-updates > by-pkgid > 05cb0e982c3387afdb1d2b5f913d9e82 > files > 75

python-eventlet-doc-0.24.1-1.1.mga7.noarch.rpm

import eventlet.websocket
import gunicorn
import os
import random
import sys


@eventlet.websocket.WebSocketWSGI
def wsapp(ws):
    ws.send(b'test pass')
    ws.close()


def app(environ, start_response):
    body = b'''<!doctype html>
<h1 id=status>loading...</h1>
<script>
  (function(D) {
    ws = new WebSocket('ws://127.0.0.1:5001/');
    ws.onmessage = function(msg) {
      var fr = new FileReader();
      fr.onload = function(ev) {
        D.getElementById('status').innerHTML = ev.target.result;
      }
      fr.readAsText(msg.data);
    };
    ws.onerror = function() {
      D.getElementById('status').innerHTML = 'test fail';
    }
  })(document);
</script>
'''
    if environ.get('HTTP_UPGRADE') == 'websocket':
        return wsapp(environ, start_response)

    start_response(
        '200 OK', (
            ('Content-type', 'text/html'),
            ('Content-Length', str(len(body))),
            ('X-Gunicorn-Version', gunicorn.__version__),
        ),
    )
    return [body]

if __name__ == '__main__':
    cmd = 'gunicorn websocket-gunicorn:app -b 127.0.0.1:5001 -k eventlet -w 1'
    sys.stderr.write('exec ' + cmd + '\n')
    os.system(cmd)