任何人都可以給我一個ASP網點4.0網站項目的工作示例,其中有一個XSockets的工作實現嗎?XSockets和Asp.Net 4.0網站項目
我已經設置了一個空白的解決方案,可以連接到ws:// localhost:4502 /通用的很好,但我無法連接到添加到App_Code文件夾的自定義控制器。
我使用最新的XSockets,通過nuget今天安裝(2014年1月13日)。
當試圖連接到自定義控制器時,我得到一個XSocketException「在加載的插件中找不到處理程序名稱」。
自定義控制器代碼是I文件,名爲MyTestController.cs,位於App_Code文件夾中。我一直試圖讓它工作4-5個小時,沒有運氣。我找不到任何說明我需要在RegisterRoutes調用中手動註冊新控制器的文檔。
我試圖創建一個MVC應用程序來查看添加XSockets做什麼,但是這並沒有手動註冊任何路線。
使用Web應用程序或MVC應用程序是不可能的,因爲我們需要嘗試將它實現爲一個非常大且成熟的遺留網站。
定製控制如下:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading;
using System.Web;
using XSockets.Core.Common.Socket.Event.Interface;
using XSockets.Core.XSocket;
using XSockets.Core.XSocket.Helpers;
/// <summary>
/// Summary description for TestController
/// </summary>
///
namespace XSocketsTest1
{
public class MyTestController: XSocketController
{
public MyTestController()
{
Debug.Print("TestController Created");
this.OnOpen += TestController_OnOpen;
this.OnClose += TestController_OnClose;
}
void TestController_OnClose(object sender, XSockets.Core.Common.Socket.Event.Arguments.OnClientDisconnectArgs e)
{
Debug.Print("TestController_OnClose");
//throw new NotImplementedException();
}
void TestController_OnOpen(object sender, XSockets.Core.Common.Socket.Event.Arguments.OnClientConnectArgs e)
{
Debug.Print("TestController_OnOpen");
this.Send("Hello there. You have connected.", "msgClient");
}
void RunReport()
{
Debug.Print("RunReport");
this.Send("You called RunReport", "msgClient");
}
}
}
Default.aspx的是在這裏:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>Clean Page - XSockets In Web Site Project Tester</h1>
<p>This is to prototype xsockets in a web site project.</p>
<p>Target environment needs to be .net 4.0 Web Site project, and <em>cannot be a web application</em>.</p>
<h4>Results</h4>
<div class="js-log-contents log-contents">
</div>
</div>
</form>
<style type="text/css">
.log-contents{border:2px solid grey;min-height:200px; width:400px;}
.log-contents.success{border-color:#0f0;}
.log-contents.error{border-color:#f00;}
em{font-weight:bolder;}
</style>
<script src="Scripts/jquery-2.0.3.min.js"></script>
<script src="Scripts/XSockets.latest.js"></script>
<script src="Scripts/XSockets.fallback.latest.js"></script>
<script type="text/javascript">
var page =
{
self: this,
config: {
//controllerAddress: "ws://localhost:4502/MyTest" // Does Not Work
controllerAddress: "ws://localhost:4502/MyTestController" // Does Not Work
//controllerAddress: "ws://localhost:4502/XSocketsTest1.MyTest" // Does Not Work
//controllerAddress: "ws://localhost:4502/XSocketsTest1.MyTestController" // Does Not Work
//controllerAddress: "ws://localhost:4502/Generic" // Works
},
logger:
{
logIdentifier: "js-log-contents",
failCssClass: "error",
successCssClass: "success",
fail: function (msg) { $("." + this.logIdentifier).append(msg).removeClass(this.successCssClass).addClass(this.failCssClass); },
success: function (msg) { $("." + this.logIdentifier).append(msg).removeClass(this.failCssClass).addClass(this.successCssClass); }
}
};
// XSockets client code - copied from xsockets.net.
var conn;
var controllerAddress = page.config.controllerAddress;
conn = new XSockets.WebSocket(controllerAddress);
conn.on(XSockets.Events.open, function (clientInfo) {
console.log("Open successful, controller name is " + controllerAddress, clientInfo)
page.logger.success("Successfully opened " + controllerAddress);
});
conn.on(XSockets.Events.onError, function (err) {
console.log('Error, controller name is ' + controllerAddress, err);
page.logger.fail("Failed to open " + controllerAddress);
});
$(function() {
});
</script>
</body>
</html>