45 lines
1.0 KiB
Python
45 lines
1.0 KiB
Python
import socketio
|
|
import eventlet
|
|
from PIL import Image
|
|
import io
|
|
|
|
sio = socketio.Server()
|
|
app = socketio.WSGIApp(sio)
|
|
|
|
@sio.event
|
|
def connect(sid, environ, auth):
|
|
print(f"Client connected {sid}")
|
|
|
|
@sio.event
|
|
def disconnect(sid):
|
|
print(f"Client disconnected {sid}")
|
|
|
|
@sio.event
|
|
def recv_image(sid, data=None):
|
|
image_data = data['image_data']
|
|
#base_image_path = "data/images/base-image.jpg"
|
|
#save_path = "data/images/test.jpg"
|
|
base_image_path = "server-images/base-image.jpg"
|
|
save_path = "server-images/im1-server.jpg"
|
|
|
|
with Image.open(io.BytesIO(image_data)) as recieved:
|
|
recieved.save(save_path)
|
|
recieved.show()
|
|
|
|
|
|
@sio.event
|
|
def request_image(sid):
|
|
image_path = "server-images/test.png"
|
|
with open(image_path, "rb") as image:
|
|
image_data = image.read()
|
|
data = {'image_data': image_data}
|
|
print("sending image")
|
|
sio.emit("recv_image", data, room=sid)
|
|
|
|
|
|
def main():
|
|
eventlet.wsgi.server(eventlet.listen(('', 9999)), app)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|