我可以逃脱这个还是太粗暴和不实用?

时间:2010-04-05 08:47:59

标签: asp.net chatroom

我整晚都在寻找一个免费的AspNet网络聊天控件,我可以直接将其拖入我的网站。那么搜索是徒劳的,因为我找不到符合我需求的控件,即用户列表,1对1聊天,能够踢出用户..

最后我决定从scractch创建自己的控件。虽然它在我的机器上运行良好但我担心它在共享主机环境中可能有点粗糙和不实用。

基本上这就是我所做的:

  1. 创建了一个存储聊天消息的SQL数据库。
  2. 写了存储过程,并附带了一条清除旧消息的声明
  3. 然后是'原始'部分:

    1. 在我的页面上拖动更新面板和计时器控件
    2. 将Repeater数据绑定拖动到更新面板内的聊天消息表
    3. 拖动另一个更新面板,在其中放置一个文本框和一个按钮
    4. 将计时器控件配置为每5秒打勾一次。
    5. ..然后我就这样做了 在计时器刻度事件中,我'刷新'通过在我的中继器上调用Databind()来显示消息,即

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

      然后在我的发送按钮点击事件

       protected void btnSend_Click(object sender, EventArgs e)
          {
      
             MyDataLayer.InsertMessage(Message, Sender, CurrTime);
      
          } 
      

      那么它在我的机器上运行良好,我已经通过简单地创建更多表来获得其他功能(用户列表,踢出用户......)。

      但就像我说的那样对我来说似乎有点粗糙。所以我需要一个专业的意见。我应该使用此方法还是尝试其他方法?

1 个答案:

答案 0 :(得分:1)

我不确定你为什么认为它粗糙 - 我希望使用客户端轮询以完全相同的方式开发任何其他ASP.NET聊天控件。但是,作为使用Update面板的替代方案,我建议使用JQuery(或其他一些Javascript框架)编写客户端AJAX功能 - ASP.NET Update面板实际上只是使用渲染技巧的标准ASP.NET回发,因此屏幕不必刷新。

关于用你所拥有的东西跑步,如果你已经走了很远,我会继续。即使您决定将其替换为轨道上的其他内容,这对您的聊天客户端的要求也将是一次很好的学习练习。