Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MVC中的监听websocket_Javascript_C#_Asp.net Mvc_Asp.net Mvc 4_Websocket - Fatal编程技术网

Javascript MVC中的监听websocket

Javascript MVC中的监听websocket,javascript,c#,asp.net-mvc,asp.net-mvc-4,websocket,Javascript,C#,Asp.net Mvc,Asp.net Mvc 4,Websocket,我使用的是MVC4。我有一个js代码,需要借助WebSocket与服务器通信。我正在服务器上使用。我正在应用程序启动事件中创建套接字服务器。但是,当我尝试从浏览器控制台连接时,我会出现连接被拒绝之类的错误 这是我的global.asax代码 看起来只要应用程序启动方法结束,WebSocketServer就会超出作用域,并最终被垃圾回收 例如,您可以将该对象设置为全局类中的成员,并在应用程序结束事件中处置它 更新: 您还使用wss模式,但不提供任何证书配置。请注意,IIS和Fleck是两个不同的东

我使用的是MVC4。我有一个js代码,需要借助WebSocket与服务器通信。我正在服务器上使用。我正在应用程序启动事件中创建套接字服务器。但是,当我尝试从浏览器控制台连接时,我会出现连接被拒绝之类的错误

这是我的global.asax代码


看起来只要应用程序启动方法结束,WebSocketServer就会超出作用域,并最终被垃圾回收

例如,您可以将该对象设置为全局类中的成员,并在应用程序结束事件中处置它

更新:

您还使用wss模式,但不提供任何证书配置。请注意,IIS和Fleck是两个不同的东西,运行在不同的端口,这并不是因为您在ASP.NET应用程序中创建了Fleck,这意味着Fleck将推断SSL/TLS配置或任何配置。请尝试将模式设置为ws,然后打开不带HTTPS的页面,看看它是否有效。

谢谢您的回复。我将服务器作为全局静态变量。然后,当我从浏览器控制台测试时,它在连接时超时。
protected void Application_Start()
{       
    IPAddress ip = null;
    if (GetResolvedConnecionIPAddress(out ip)) // Get host ip
    {
        string Domain = "wss" + System.Uri.SchemeDelimiter + ip + ":" + "8092"; 

        FleckLog.Level = Fleck.LogLevel.Debug;

        try
        {
            if (GetResolvedConnecionIPAddress(out ip))
            {

                var server = new WebSocketServer(Domain);

                server.Start(socket =>
                {
                    LogWriter.Logger.Info("WS: Inside socket server");
                    socket.OnOpen = () =>
                    {
                        LogWriter.Logger.Info("WS: OnOpen socket");
                    };
                    socket.OnClose = () =>
                    {
                        LogWriter.Logger.Info("WS: OnClose socket");
                    };
                    socket.OnMessage = message =>
                    {
                        LogWriter.Logger.Info("WS: OnMsg socket");
                    };
                });

            }
        }
        catch (Exception e)
        {
            throw;
        }
    }
}