public void Send(MessageModel Message) { SendStateObject state = new SendStateObject(); state.WorkSocket = _ConSocket; state.extra = Message; MessageBase sendMessage = null; if (Message is TextMessageModel) { sendMessage = new TextChatMessage((TextMessageModel)Message, Model.Username, Model.id); } else if (Message is ImageMessageModel) { sendMessage = new ImageChatMessage((ImageMessageModel)Message, Model.Username, Model.id); } else if (Message is BuzzMessageModel) { sendMessage = new BuzzMessage(Model.Username, Model.id); } string serializedMessage = sendMessage.Serialize(); byte[] byteMessage = Encoding.UTF8.GetBytes(serializedMessage); state.MessageLength = byteMessage.Length; try { state.WorkSocket.BeginSend(byteMessage, 0, state.MessageLength, SocketFlags.None, SendCallback, state); } catch (Exception ex) when(ex is SocketException || ex is NullReferenceException) { throw new NoConnectionException(); } }
public void SendBuzzMessage() { BuzzMessage meBuzz = new BuzzMessage("You Buzzed " + info.PeerUsername, info.MyUsername); AddMessage(meBuzz); Database.DatabaseManager.WriteMessages(Messages.ToList(), info); BuzzMessage buzz = new BuzzMessage(info.MyUsername + " Buzzed you!", info.MyUsername); Runner.Secondary(() => socket.SendMessage(buzz, MessageType.BuzzMessage)); }
private void OnBuzzMessageRecievedHandler(BuzzMessage message) { AddMessage(message); Database.DatabaseManager.WriteMessages(Messages.ToList(), info); OnBuzzHandler(); }
void OnBuzzReceived(BuzzMessage msg) { BuzzReceived(this, new SessionEventArgs(msg.SessionId, msg.Sender)); Trace.WriteLine(msg.Sender + " is buzzing."); }