I'm making my firs online game in python, I decided to use python because its simplicity using sockets. I need to find a method to coordinate all the existing game objects like players, items, monsters width the server and the client computers.
Method 1:
Make every entity (player, monsters, NPC) to run in its own thread an use its own socket to communicate with the copies in the client computers. For example, if I am a player and attack a monster the monster will send the order to drain health points to its corresponding copie in each computer and the server.
Method 2:
Make one socket handled by the main function, its purpose would be to get the messages sent by the clients and process them and send an answer. For example, A monster has 0 health points so that character should die, it sends a request to the server, the server analyzes the request and sends an answer to all the clients.

I haven't finished any of these algorithms because I don't want to make useful code so that is why I am asking which of them is better.
If it is possible I would like you to recommend other methods.
run all the players in threads, and have central threads that monitor game logic, and monster activities. otherwise, if one of your clients disconnects, the whole game crashes
python online game using socket library