我想在我的服务上使用SignalR和Nacyfx。所以我用Owin Selfhost试了一下。我运行了我的SignalR,我可以从我的Angular2客户端访问它,并且可以从SignalR访问我的客户端,因此SignalR可以看到一切正常。 但是当我试图访问/接收来自南希的数据我失败了。我无法通过我的客户访问我的南希。 我在不同于我的网站的端口上运行我的服务。在Owin Selfhost ||上使用SignalR和Nancyfx Angular2在客户端
计划:
class Program
{
static void Main(string[] args)
{
string url = "http://+:2222";
using (WebApp.Start<Startup>(url))
{
Console.WriteLine("SignalR Server running on {0}", url);
Console.WriteLine();
Console.ReadLine();
}
}
}
启动:
class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseCors(CorsOptions.AllowAll);
app.MapSignalR(new HubConfiguration() { EnableJSONP = true });
app.UseNancy();
}
}
枢纽,是这样的:
public class MyHub : Hub
{
private readonly static ConnectionMapper<string> _mappedConnections = new ConnectionMapper<string>();
public override Task OnConnected()
{
var user= Context.QueryString["user"];
_mappedConnections.Add(user, Context.ConnectionId);
Console.WriteLine("User connected: " + user);
Console.WriteLine();
return base.OnConnected();
}
}
所以我SignalR正在与本准则。
而且我南希的样子:
class NancyServiceModule : Nancy.NancyModule
{
private DatabaseAccess _dbAccess = new DatabaseAccess();
public NancyServiceModule() : base("/nancy/"){
Get["/accessible"] = parameters =>
{
return new Response
{
StatusCode = HttpStatusCode.OK
};
};
}
}
在客户方我tryed像这样的东西来访问南希:
export class DatabaseService {
constructor(
private _http: Http
) {}
getMachines(): Observable<Response> {
return this._http.get('http://localhost:2222/nancy/accessible');
//also tryed Hardcoded IP instead of localhost
}
}
我想不通,如果我只是访问nacy错误从我的客户端或者如果我在Serverside上遇到一些错误。 (网页目前在端口:3000上运行)
如果你需要更多的信息或更多的代码只是问,但我希望我得到了最重要的东西。
如果你们中的一些人可以帮助我解决这个问题,那将会很棒!
更新
当通过浏览器地址栏中访问南西南西是显示404错误(也表示南西tabicon)。所以在某种程度上它的工作,但我不能访问它的权利。