c# - 时间:2019-04-01 标签:c#chatclientwithsocketio
问题描述
我正在使用 socket io 在 C# 中构建一个聊天客户端,服务器在 nodejs 中,我的问题是当接收来自其他用户的消息时,我如何构建程序以便能够为每个向我发送消息的用户打开不同的窗口不混合消息。我希望我已经解释得很好。谢谢。
解决方案
由于您在消息中有“发件人”字段,这应该不是问题,您可以按此字段划分消息,然后将所有聊天的集合存储在某处,例如:
Dictionary<string, ChatWindow> chatWindows = new Dictionary<string, ChatWindow>();
...
public void ProcessMessage(Message message)
{
ChatWindow chatWindow;
if(!chatWindows.TryGetValue(message.From, out chatWindow))
{
chatWindow = new ChatWindow();
chatWindows[message.From] = chatWindow;
}
chatWindow.AddMessage(message);
}
这只是某种伪代码,但我希望你能明白。
推荐阅读
- javascript - 如何将确认组件添加到 React 中的现有导航组件
- javascript - 将数组转换为逗号分隔的字符串
- php - MySQL 查询以列出多列的 AZ
- sql - 单个事务中的多个读取查询
- python - 在使用 scikit-learn 在 Pipeline 中拟合 ML 模型后,如何将准确性与 score() 函数中的另一个性能指标交换?
- numpy - 在numpy / scipy中以均匀间隔重新采样时间序列?
- android - 发布 apk 不更新
- jquery - 达到正文结束后向下滚动不重复
- java - 如何跟踪执行while循环的迭代?
- sql - 将名称与柱状表中的 SSN 匹配