c# - 接收服务器对客户端请求的响应
问题描述
目前我正在使用 WebSocket-Sharp。我可以通过我的应用程序连接到服务器,并且可以Client.Send(Move.HeadNod);
在单击按钮时向服务器发送一个。然而,即使我宣布
private WebSocket client;
const string host="ws://localhost:80";
public Form1()
{
InitializeComponent();
client=new WebSocket(host);
client.connect();
Client.OnMessage+=client_OnMessage
}
在哪里:
client_OnMessage(object sender,MessageEventArgs e)
{
textbox1.text=convert.tostring(e);
client.send(move.headleft);
}
我仍然无法从服务器获得响应并在之后继续发送命令。编辑
void Client_OnMessage(object sender,MessageEventArgs e)
{
if(e.IsText)
{
edata=e.data;
return;
}
else if(e.IsBinary)
{
Textbox1.Text=Convert.Tostring(e.RawData);
return;
}
}
解决方案
这是在我的机器上工作的完整代码。在两个事件处理程序中放置一个断点,看看会发生什么。也许你的 web socket 服务器抛出了一个异常,而你只是不知道:
public partial class Form1 : Form
{
private readonly WebSocket _client;
public Form1()
{
InitializeComponent();
_client = new WebSocket("ws://echo.websocket.org");
_client.OnMessage += Ws_OnMessage;
_client.OnError += Ws_OnError;
_client.Connect();
}
private void Ws_OnError(object sender, ErrorEventArgs e)
{
}
private void Ws_OnMessage(object sender, MessageEventArgs e)
{
if (e.IsText)
{
Invoke(new MethodInvoker(delegate () {
textBox1.Text = e.Data;
}));
}
else if (e.IsBinary)
{
Invoke(new MethodInvoker(delegate () {
textBox1.Text = Convert.ToString(e.RawData);
}));
}
}
private void button1_Click(object sender, System.EventArgs e)
{
_client.Send("Hi");
}
}
推荐阅读
- c# - 如何使用 C# 添加带有文本和图标的 Excel 行命令栏标题
- sql - SUBSTRING 中的 CHARINDEX 减法不起作用
- acumatica - 如何使用 PXCustomizeBaseAttribute 自定义 PXSelector
- dynamics-crm - 隐藏全局菜单(命令)栏中的按钮
- c# - C# 正则表达式可选 url 参数
- assembly - 如果我在 x86 中更改堆栈指针,基指针是否会更改?
- c - 后缀 C 程序的中缀
- javascript - ScrollIntoView 滚动到页面底部而不是块的开头
- python - 使用python映射到整数后如何防止前导零
- c# - C#如何获取当前路径并上一个文件夹