Pergunta

Passei a noite passada procurando um controle gratuito da ASPNET Web Chat que eu poderia simplesmente arrastar para o meu site. Bem, a pesquisa foi em vão, pois eu não conseguia encontrar um controle que correspondesse às minhas necessidades, ou seja, lista de usuários, 1 a 1 bate -papo, capacidade de expulsar os usuários.

No final, decidi criar meu próprio controle da Scractch. Embora funcione bem na minha máquina, estou preocupado que talvez seja um pouco grosseiro e pouco prático em um ambiente de hospedagem compartilhada.

Basicamente, foi isso que eu fiz:

  1. Criou um banco de dados SQL que armazena as mensagens de bate -papo.
  2. Escreveu os procedimentos armazenados e incluiu uma declaração que limpa mensagens antigas

Então a parte 'grosseira':

  1. Arrastei um painel de atualização e controle do timer na minha página
  2. Arrastei um banco de dados repetidor para a tabela de mensagens de bate -papo dentro do painel de atualização
  3. Arrastei outro painel de atualização e dentro dele colocou uma caixa de texto e um botão
  4. Configurou o controle do timer para marcar a cada 5 segundos.

..e então eu fiz tudo funcionar como este no evento de tick tick eu 'atualizei' as mensagens exibindo invocando o banco de dados () no meu repetidor, ou seja,

 protected void Timer1_Tick(object sender, EventArgs e)
    {
       MyRepeater.DataBind();
    }

Então, no meu botão de envio, clique em

 protected void btnSend_Click(object sender, EventArgs e)
    {

       MyDataLayer.InsertMessage(Message, Sender, CurrTime);

    } 

Bem, ele funciona bem na minha máquina e eu obtive as outras funcionalidades (listar os usuários, chutar o usuário ..) para funcionar simplesmente criando mais tabelas.

Mas como eu disse, parece um pouco grosseiro para mim. Então, eu preciso de uma opinião profissional. Devo correr com isso ou tentar outra abordagem?

Foi útil?

Solução

Não sei por que você acha que é grosseiro - eu esperaria que qualquer outro controle de bate -papo do ASP.NET fosse desenvolvido exatamente da mesma maneira usando a pesquisa do lado do cliente. Como alternativa ao uso de painéis de atualização, no entanto, eu recomendaria escrever a funcionalidade Ajax do lado do cliente usando o jQuery (ou alguma outra estrutura JavaScript) - o painel de atualização do ASP.NET é realmente um postback padrão do ASP.NET usando um truque de renderização, de modo que o A tela não precisa ser atualizada.

Em relação à corrida com o que você tem, se você já foi tão longe quanto você já, eu continuaria. Será um ótimo exercício de aprendizado sobre os requisitos para o seu cliente de bate -papo, mesmo se você decidir substituí -lo por outra coisa na pista.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top