我昨晚整晚都在寻找一个免费的 AspNet 网络聊天控件,我可以简单地将它拖到我的网站中。好吧,搜索是徒劳的,因为我找不到符合我需求的控件,即用户列表、1 对 1 聊天、踢出用户的能力..
最后,我决定从头开始创建自己的控件。虽然它在我的机器上运行良好,但我担心它在共享托管环境中可能有点粗糙和不切实际。
基本上这就是我所做的:
- 创建了一个存储聊天消息的 sql 数据库。
- 编写了存储过程,并包含了一条清除旧消息的语句
然后是“粗略”部分:
- 在我的页面上拖动更新面板和计时器控件
- 将Repeater数据绑定到更新面板内的聊天消息表
- 拖动另一个更新面板并在其中放置一个文本框和一个按钮
- 将计时器控件配置为每 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);
}
好吧,它在我的机器上运行良好,并且我通过简单地创建更多表来获得其他功能(用户列表,踢出用户..)。
但就像我说的那样,这对我来说似乎有点粗糙。所以我需要一个专业的意见。我应该用这个运行还是尝试另一种方法?