2

我昨晚整晚都在寻找一个免费的 AspNet 网络聊天控件,我可以简单地将它拖到我的网站中。好吧,搜索是徒劳的,因为我找不到符合我需求的控件,即用户列表、1 对 1 聊天、踢出用户的能力..

最后,我决定从头开始创建自己的控件。虽然它在我的机器上运行良好,但我担心它在共享托管环境中可能有点粗糙和不切实际。

基本上这就是我所做的:

  1. 创建了一个存储聊天消息的 sql 数据库。
  2. 编写了存储过程,并包含了一条清除旧消息的语句

然后是“粗略”部分:

  1. 在我的页面上拖动更新面板和计时器控件
  2. 将Repeater数据绑定到更新面板内的聊天消息表
  3. 拖动另一个更新面板并在其中放置一个文本框和一个按钮
  4. 将计时器控件配置为每 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);

    } 

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

但就像我说的那样,这对我来说似乎有点粗糙。所以我需要一个专业的意见。我应该用这个运行还是尝试另一种方法?

4

1 回答 1

1

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

关于用你所拥有的东西跑步,如果你已经走到了尽头,我会继续。即使您决定用其他东西替换它,这也将是一个很好的关于聊天客户端要求的学习练习。

于 2010-04-06T04:10:16.550 回答