| #!/usr/bin/env python3 |
| |
| import os |
| import sys |
| from urllib.parse import parse_qs |
| |
| request_method = os.environ.get('REQUEST_METHOD') |
| count = int(parse_qs(os.environ.get('QUERY_STRING', ''), keep_blank_values=True).get('count', [0])[0]) |
| |
| sys.stdout.write('Content-Type: text/event-stream\r\n') |
| |
| if request_method == 'OPTIONS': |
| sys.stdout.write('\r\nGot unexpected preflight request\n') |
| sys.exit(0) |
| |
| http_origin = os.environ.get('HTTP_ORIGIN') |
| http_last_event_id = os.environ.get('HTTP_LAST_EVENT_ID') |
| |
| if count == 2: |
| sys.stdout.write('Access-Control-Allow-Origin: http://some.other.origin:80\r\n\r\n') |
| elif count == 3: |
| sys.stdout.write('Access-Control-Allow-Origin: *\r\n\r\n') |
| elif count > 3: |
| sys.stdout.write('Access-Control-Allow-Origin: {}\r\n\r\n'.format(http_origin)) |
| else: |
| sys.stdout.write('\r\n') |
| |
| if http_last_event_id != '77': |
| print('id: 77\ndata: DATA1\nretry: 0\n') |
| else: |
| print('data: DATA2\n') |