Simple socket manager
I'd say, your call to Apple.GetPlayerManager() bothers me. Your socket implementation does not need to know this is a game and it's creating a new player etc. I whould break the relation somehow, passing the payload or event received in your socket to some other service, preferably injected using dependency injection or sth.

This would make your socket class testable on its own (by mockup objects) and other classes much easily.

PS: your SocketSettings class is actually ServerInformation, copy/paste problem I suppose..