SuperWebSocket服务器只能接收一条消息

时间:2014-10-28 13:12:02

标签: c# websocket

我在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);
    }
}

我可以毫无问题地从服务器发送消息,但在不关闭连接的情况下无法接收多条消息。这个问题的原因是什么,我该如何解决?

1 个答案:

答案 0 :(得分:0)

尝试更换:

ws.NewMessageReceived += ws_NewMessageReceived;

使用:

ws.NewMessageReceived += new SuperWebSocket.SessionEventHandler<SuperWebSocket.WebSocketSession, string>(ws_NewMessageReceived);