- import socketio
- import socket
- import json
- import re
- import threading
- import eventlet
- sio = socketio.Server(cors_allowed_origins='*')
- app = socketio.WSGIApp(sio)
- @sio.event
- def connect(sid, environ):
- print('Client connected:', sid)
- @sio.event
- def disconnect(sid):
- print('Client disconnected:', sid)
- @sio.on('message')
- def handle_message(sid, data):
- print('Received message:', data)
- sio.emit('message', 'from server: lorem-ispsum', room=sid)
- def read_from_udp():
- UDP_IP = '127.0.0.1'
- UDP_PORT = 8080
- server_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- server_sock.bind((UDP_IP, UDP_PORT))
- while True:
- data, _ = server_sock.recvfrom(1024)
- data = data.decode("utf-8")
- print(data)
- p = re.compile('(?<!\)'')
- data = p.sub('"', data)
- print(data)
- sio.emit("data", {'data': data})
- def start_udp_thread():
- udp_thread = threading.Thread(target=read_from_udp)
- udp_thread.daem
- udp_thread.start()
- def start_socketio_server():
- eventlet.wsgi.server(eventlet.listen(('0.0.0.0', 8081)), app)
- if __name__ == '__main__':
- udp_thread = threading.Thread(target=start_udp_thread)
- socketio_thread = threading.Thread(target=start_socketio_server)
- udp_thread.start()
- socketio_thread.start()
- udp_thread.join()
- socketio_thread.join()
Raw Paste