Пример #1
0
    private void SalvarMensagem(MensagemVO vo){
        mensagem msg = new mensagem();
        msg.id = Guid.NewGuid();
        msg.id_usuario = new Guid(vo.IdUsuario);
        msg.id_conversa = new Guid(vo.IdConversa);
        msg.texto = vo.Texto;
        msg.dt_envio = DateTime.Now;

        bool ehProfessor = false;

        using (Modelo db = new Modelo())
        {
            db.mensagem.Add(msg);
            db.SaveChanges();

            usuario u = db.usuario.Where(usu => usu.id.ToString() == vo.IdUsuario).FirstOrDefault();
            ehProfessor = u.tipo == "P";

        }

        if (ehProfessor)
            EnviarNotificacao(vo);
        else
            EnviarMensagemNoSocket(vo);
                
    }
 private void EnviarMensagemParaClienteWeb(MensagemVO msg)
 {
     JavaScriptSerializer jss = new JavaScriptSerializer();
     var outputBuffer = new ArraySegment<byte>(Encoding.UTF8.GetBytes(jss.Serialize(msg)));
     //terminar
     /*foreach (WebSocket s in sockets)
         s.SendAsync(outputBuffer, WebSocketMessageType.Text, true, CancellationToken.None);*/
 }
Пример #3
0
    public void EnviarMensagemNoSocket(MensagemVO vo)
    {
        usuario professor = null;
        using (Modelo db = new Modelo())
        {
            conversa c = db.conversa.Find(vo.IdConversa);
            professor = c.usuario.Where(u => u.id.ToString() != vo.IdUsuario).FirstOrDefault();

        }

        WebSocket socket = null;
        sockets.TryGetValue(professor.id.ToString(), out socket);

        ArraySegment<byte> buffer = new ArraySegment<byte>(Encoding.UTF8.GetBytes(vo.Texto));

        socket.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None);
    }
Пример #4
0
 public void EnviarNotificacao(MensagemVO vo)
 {
     //notificação push para o app
 }