我在SuperWebSocket讨论中跟随example创建了一个带回声功能的小型Web套接字服务器。但是,我的服务器只能接收和发回一条消息,当我尝试向其发送第二条消息时,连接将关闭。我使用this echo page来测试我的服务器。
这是我的代码(我在这里使用没有MVVM的WPF):
public partial class MainWindow : Window
{
private WebSocketServer ws;
public MainWindow()
{
InitializeComponent();
}
private void ConnectButton_Click(object sender, RoutedEventArgs e)
{
var r = new RootConfig();
var s = new ServerConfig();
s.Name = "SuperWebSocket";
s.Ip = "Any";
s.Port = 8089;
s.Mode = SocketMode.Tcp;
var f = new SocketServerFactory();
if (ws != null)
{
ws.Stop();
ws = null;
}
ws = new WebSocketServer();
ws.Setup(r, s, f);
ws.NewMessageReceived += ws_NewMessageReceived;
ws.Start();
}
private void ws_NewMessageReceived(WebSocketSession session, string e)
{
session.Send("Message: " + e);
}
}
我可以毫无问题地从服务器发送消息,但在不关闭连接的情况下无法接收多条消息。这个问题的原因是什么,我该如何解决?
答案 0 :(得分:0)
尝试更换:
ws.NewMessageReceived += ws_NewMessageReceived;
使用:
ws.NewMessageReceived += new SuperWebSocket.SessionEventHandler<SuperWebSocket.WebSocketSession, string>(ws_NewMessageReceived);