XSocket.Net - WebSocket握手期间出错:意外响应代码:404

时间:2014-04-15 11:18:21

标签: asp.net xsockets.net

我在.Net 4.5版中使用XSocket.Net进行实时通信。

我是XSocket.Net的新手。

以下是我的尝试。在Controller文件夹中,我使用以下代码创建了MyController。

using System;
using XSockets.Core.XSocket;
using XSockets.Core.XSocket.Helpers;

namespace XSocketTest.Controllers
{
   public class MyController : XSocketController
   {

      public void OnChatMessage(string message)
      {
         this.SendTo( message, "onChatMessage");
      }
   }
}

以下是根位置

中的html页面“index.html”
<!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<input type="text" id="input-message" value="Goo LR" />
<button id="btn-send">send</button>
<div id="messages"></div>
<script src="Scripts/jquery-2.1.0.min.js"></script>
<script src="Scripts/XSockets.latest.js"></script>

<script>
    var conn = null;
    $(function () {
        //Create a connection
        conn = new XSockets.WebSocket('ws://localhost:4023/My');
        conn.onopen = function () {


            conn.on('onchatmessage', function (d) {
                $('#messages').prepend($('<div>').text(d));
            });
        };

        $('#btn-send').on('click', function () {
            conn.publish('onchatmessage', { message: $('#input-message').val() });
        });
    });
  </script>
</body>
 </html>

我在控制台(Chrome)中遇到错误,加载html,“WebSocket连接到'ws:// localhost:4023 /我'失败:WebSocket握手期间出错:意外响应代码:404”

我不知道我做错了什么。

非常感谢任何帮助或建议。

1 个答案:

答案 0 :(得分:0)

你启动了服务器吗?

我的猜测是你添加了启动类(如here所述,请参阅webb应用程序中的安装)。

然后你在根目录中有html文件,当请求非服务器端资源时,不会调用App_Start。在这种情况下,只需对root用户执行初始请求,并在启动类中设置断点以查看它是否会触发。现在你可以再次访问html文件。

刚刚看到另一个可能的错误,您正在使用端口4023,但是您是否在该端口上启动了服务器?默认端口是4502,但您可以配置(见here

编辑:控制器中也有错误。我认为它甚至不应该编译。 行:

this.SendTo(message, "onChatMessage");

应该是

this.SendToAll(message, "onChatMessage");

您可以使用SenTo,但之后您必须传入过滤器

Func<T,bool>