Skip to content

Instantly share code, notes, and snippets.

@jhalbrecht
Created December 10, 2012 00:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jhalbrecht/4247604 to your computer and use it in GitHub Desktop.
Save jhalbrecht/4247604 to your computer and use it in GitHub Desktop.
Switch statement from UdpMessageService.cs
async void OnSocketMessageReceived(DatagramSocket sender, DatagramSocketMessageReceivedEventArgs args)
{
if (_connection.Writer == null)
ConnectToRemoteSocket(args.RemoteAddress, args.RemotePort);
var reader = args.GetDataReader();
var messageType = (WireMessageType)reader.ReadInt32();
switch (messageType)
{
case WireMessageType.PlayerLeave:
if (PlayerExited != null)
PlayerExited(this, new
PlayerExitedEventArgs(_connection.RemotePlayer));
break;
case WireMessageType.PlayerJoin:
if (PlayerJoined != null)
{
var nameLength = _connection.Reader.ReadInt32();
var name = _connection.Reader.ReadString((uint)nameLength);
var remotePlayer = new Player();
remotePlayer.Name = name;
_connection.RemotePlayer = remotePlayer;
PlayerJoined(this, new PlayerJoinedEventArgs(remotePlayer));
}
break;
case WireMessageType.ChatMessage:
var msgLength = _connection.Reader.ReadInt32();
var text = _connection.Reader.ReadString((uint)msgLength);
var msg = new ChatMessage();
msg.Message = text;
msg.Player = _connection.RemotePlayer;
if (ChatMessageReceived != null)
ChatMessageReceived(this, new
ChatMessageReceivedEventArgs(msg));
break;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment