首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止来自服务器的响应覆盖旧响应

防止来自服务器的响应覆盖旧响应
EN

Stack Overflow用户
提问于 2018-07-19 16:19:13
回答 1查看 48关注 0票数 0

目前我有一个工作的WebSocket-Sharp客户端,允许用户在button_click事件上发送请求。我还在richtextbox( NTF或RSP)中接收来自服务器的响应。

代码语言:javascript
复制
    Private void InstantiateWebSocket()
{
client=new WebSocket("ws://localhost:80");
client.OnMessage+=new EventHandler<MessageEventArgs>(client_OnMessage);
client.ConnectAsync();
}

和OnMessage

代码语言:javascript
复制
private void client_OnMessage(object sender,MessageEventArgs e)
{
if(e.IsText)
{
Invoke(new MethodInvoker(delegate() richTextBox1.text=e.Data;}));
return;
}
}

我目前面临的问题是,每当客户端收到响应时,它就会覆盖较旧的响应。我希望较新的回复写在较旧的回复下面

代码语言:javascript
复制
    older response..
    new line
    newer response
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-19 16:30:23

您需要追加现有的richTextBox1文本:

代码语言:javascript
复制
richTextBox1.Text+=e.Data;

注意:如果您想稍后使用/处理这些响应,请将它们与时间戳一起存储在某个集合中。

添加一个私有字段,即

代码语言:javascript
复制
private ConcurrentBag<KeyValuePair<DateTime, string>> _messages = new ConcurrentBag<KeyValuePair<DateTime, string>>();

然后只需在消息接收代码中执行以下操作:

代码语言:javascript
复制
_messages.Add(new KeyValuePair<DateTime, string>(DateTime.Now, e.Data)); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51417699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档