如何从在 websocket-sharp C# 中创建 WebSocket class 的新实例的代码的不同部分发送消息
How do I send a message from a different section of code from where the new instance of the WebSocket class was created in websocket-sharp C#
这是我在 Stack Overflow 上的第一个 post,所以如果我的问题不是很清楚,请原谅。要添加更多上下文,我想在单击连接按钮时打开到 WebSocket 的连接,并在单击发送按钮时从连接按钮打开的连接发送消息。问题是我无法从发送消息按钮访问我在连接按钮中创建的 ws 变量。下面的代码可能会让您更了解我想做什么:
private void buttonConnect_Click(object sender, EventArgs e)
{
var ws = new WebSocket(textBoxSocketUrl.Text);
ws.Connect();
}
private void buttonSendMessage_Click(object sender, EventArgs e)
{
ws.Send(textBoxMessage.Text);
}
谢谢。
这是预期的,您看不到 ws
变量,因为它是在另一个 "context" 中创建的。为了得到它,ws
应该是你的 class 的一部分。尝试将您的代码更改为如下内容:
private WebSocket ws;
private void buttonConnect_Click(object sender, EventArgs e)
{
ws = new WebSocket(textBoxSocketUrl.Text);
ws.Connect();
}
private void buttonSendMessage_Click(object sender, EventArgs e)
{
ws.Send(textBoxMessage.Text);
}
这是我在 Stack Overflow 上的第一个 post,所以如果我的问题不是很清楚,请原谅。要添加更多上下文,我想在单击连接按钮时打开到 WebSocket 的连接,并在单击发送按钮时从连接按钮打开的连接发送消息。问题是我无法从发送消息按钮访问我在连接按钮中创建的 ws 变量。下面的代码可能会让您更了解我想做什么:
private void buttonConnect_Click(object sender, EventArgs e)
{
var ws = new WebSocket(textBoxSocketUrl.Text);
ws.Connect();
}
private void buttonSendMessage_Click(object sender, EventArgs e)
{
ws.Send(textBoxMessage.Text);
}
谢谢。
这是预期的,您看不到 ws
变量,因为它是在另一个 "context" 中创建的。为了得到它,ws
应该是你的 class 的一部分。尝试将您的代码更改为如下内容:
private WebSocket ws;
private void buttonConnect_Click(object sender, EventArgs e)
{
ws = new WebSocket(textBoxSocketUrl.Text);
ws.Connect();
}
private void buttonSendMessage_Click(object sender, EventArgs e)
{
ws.Send(textBoxMessage.Text);
}