Initial Server and Client for recommond engine
This commit is contained in:
@@ -1,24 +1,42 @@
|
||||
import asyncio
|
||||
import websockets
|
||||
import socket
|
||||
import threading
|
||||
import json
|
||||
|
||||
async def handle_client(websocket, path):
|
||||
try:
|
||||
# Receive user ID
|
||||
user_id = await websocket.recv()
|
||||
print(f"Received user ID: {user_id}")
|
||||
# Sample recommendations function
|
||||
def get_recommendations(user_id):
|
||||
# This is a mock function. Replace it with your actual recommendation logic.
|
||||
return {"recommendations": [f"Product {user_id} - Item 1", f"Product {user_id} - Item 2", f"Product {user_id} - Item 3"]}
|
||||
|
||||
# Optional: You can add more logic here if needed
|
||||
# Handle client connection
|
||||
def handle_client(client_socket, client_address):
|
||||
print(f"New connection from {client_address}")
|
||||
|
||||
except websockets.exceptions.ConnectionClosed:
|
||||
print("Client disconnected")
|
||||
except Exception as e:
|
||||
print(f"Error processing request: {str(e)}")
|
||||
# Receive the client request (user_id)
|
||||
request = client_socket.recv(1024).decode("utf-8")
|
||||
if request:
|
||||
data = json.loads(request)
|
||||
user_id = data.get("user_id")
|
||||
|
||||
async def start_server():
|
||||
server = await websockets.serve(handle_client, "localhost", 5555)
|
||||
print("WebSocket server started")
|
||||
await server.wait_closed()
|
||||
# Get recommendations for the user
|
||||
recommendations = get_recommendations(user_id)
|
||||
|
||||
# Send the response back to the client
|
||||
client_socket.send(json.dumps(recommendations).encode("utf-8"))
|
||||
|
||||
# Close the connection after sending the response
|
||||
client_socket.close()
|
||||
|
||||
# Start the server to handle multiple clients
|
||||
def start_server():
|
||||
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
server.bind(("0.0.0.0", 9999)) # Bind to all interfaces on port 9999
|
||||
server.listen(5)
|
||||
print("Server listening on port 9999...")
|
||||
|
||||
while True:
|
||||
client_socket, client_address = server.accept()
|
||||
client_thread = threading.Thread(target=handle_client, args=(client_socket, client_address))
|
||||
client_thread.start()
|
||||
|
||||
# Run the server
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(start_server())
|
||||
start_server()
|
||||
|
||||
Reference in New Issue
Block a user