The owner of these actors is logically Play, since Play owns and manages the lifecycle of the connections.  I don't think it makes sense to have a user actor own the actors Play creates.  We could put a Play WebSocket manager actor in to be the parent of these, but I don't see that as gaining us anything, rather it complicates things because it requires state that is bound to Play's lifecycle, whereas the current solution only attaches state to a connection, and so its lifecycle is just bound to the connection.

Returning `Props` would mean the client code would have to then call `actorOf`, increasing the amount of boiler plate a user would have to write.

Also, there's no global singleton used here, there is an implicit `Application` passed in, there's no assertion made on it's singletonness or globalness.