目前我有一个工作的WebSocket-Sharp客户端,允许用户在button_click事件上发送请求。我还在richtextbox( NTF或RSP)中接收来自服务器的响应。
Private void InstantiateWebSocket()
{
client=new WebSocket("ws://localhost:80");
client.OnMessage+=new EventHandler<MessageEventArgs>(client_OnMessage);
client.ConnectAsync();
}和OnMessage
private void client_OnMessage(object sender,MessageEventArgs e)
{
if(e.IsText)
{
Invoke(new MethodInvoker(delegate() richTextBox1.text=e.Data;}));
return;
}
}我目前面临的问题是,每当客户端收到响应时,它就会覆盖较旧的响应。我希望较新的回复写在较旧的回复下面
older response..
new line
newer response发布于 2018-07-19 16:30:23
您需要追加现有的richTextBox1文本:
richTextBox1.Text+=e.Data;注意:如果您想稍后使用/处理这些响应,请将它们与时间戳一起存储在某个集合中。
添加一个私有字段,即
private ConcurrentBag<KeyValuePair<DateTime, string>> _messages = new ConcurrentBag<KeyValuePair<DateTime, string>>();然后只需在消息接收代码中执行以下操作:
_messages.Add(new KeyValuePair<DateTime, string>(DateTime.Now, e.Data)); https://stackoverflow.com/questions/51417699
复制相似问题