我正在尝试从C#格式发送数据,该数据已存储在名为ClientMsg
的变量中。我正在使用SocketIoClientDotNet
与节点服务器通信。我的连接设置很好,但是无法将数据从表单发送到服务器。
有人可以告诉我该怎么做,因为我在网上找不到任何东西?
更新(添加的代码):
private void socketManager()
{
var server = IO.Socket("http://localhost");
server.On(Socket.EVENT_CONNECT, () =>
{
UpdateStatus("Connected");
});
server.On(Socket.EVENT_DISCONNECT, () =>
{
UpdateStatus("disconnected");
});
server.Emit("admin", ClientMsg);
}
按钮:
private void btnSend_Click(object sender, EventArgs e)
{
String ClientMsg = txtSend.Text;
if (ClientMsg.Length == 0)
{
txtSend.Clear();
}
else
{
txtSend.Clear();
lstMsgs.Items.Add("You:" + " " + ClientMsg);
}
}
答案 0 :(得分:1)
代码的问题在于,您尝试使用ClientMsg
变量(该变量最初为null)在连接后直接发送消息。
即使您在文本框中输入内容,该内容也将保持为空,因为在按钮单击事件中,您声明的是本地的新ClientMsg
,因此您将无法使用全局的内容。
这是应该的样子:
// Save your connection globally so that you can
// access it in your button clicks etc...
Socket client;
public Form1()
{
InitializeComponent();
InitializeClient();
}
private void InitializeClient()
{
client = IO.Socket("http://localhost");
client.On(Socket.EVENT_CONNECT, () =>
{
UpdateStatus("Connected");
});
client.On(Socket.EVENT_DISCONNECT, () =>
{
UpdateStatus("disconnected");
});
}
private void btnSend_Click(object sender, EventArgs e)
{
String clientMsg = txtSend.Text;
if (ClientMsg.Length == 0)
{
// No need to clear, its already empty
return;
}
else
{
// Send the message here
client.Emit("admin", clientMsg);
lstMsgs.Items.Add("You:" + " " + clientMsg);
txtSend.Clear();
}
}