【问题标题】:SuperWebSocket server can receive only one messageSuperWebSocket 服务器只能接收一条消息
【发布时间】:2014-10-28 13:12:02
【问题描述】:

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

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

【问题讨论】:

  • 您能在 Google Chrome 控制台中看到显示的错误吗?
  • 你有想过这个吗?
  • @DepartamentoB 抱歉,我仍然记得那个任务是关于什么的,但我真的不记得关于这个确切问题的任何内容。可惜我当时忘记了这个问题。

标签: c# websocket


【解决方案1】:

尝试替换:

ws.NewMessageReceived += ws_NewMessageReceived;

与:

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

【讨论】:

    猜你喜欢
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多