I would strongly suggest to limit those cases. For example, the only "argument" I would allow for strings is the player name. That means that all possible 'reasons' for disconnecting should get their own message and obviously a "reason not full clear" message. The communication protocol could then make a distinction between messages with argument and without. This keeps things a little less convoluted.