我在.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”
我不知道我做错了什么。
非常感谢任何帮助或建议。
答案 0 :(得分:0)
你启动了服务器吗?
我的猜测是你添加了启动类(如here所述,请参阅webb应用程序中的安装)。
然后你在根目录中有html文件,当请求非服务器端资源时,不会调用App_Start。在这种情况下,只需对root用户执行初始请求,并在启动类中设置断点以查看它是否会触发。现在你可以再次访问html文件。
刚刚看到另一个可能的错误,您正在使用端口4023,但是您是否在该端口上启动了服务器?默认端口是4502,但您可以配置(见here)
编辑:控制器中也有错误。我认为它甚至不应该编译。 行:
this.SendTo(message, "onChatMessage");
应该是
this.SendToAll(message, "onChatMessage");
您可以使用SenTo,但之后您必须传入过滤器
Func<T,bool>