私のサービスでSignalRとNacyfxを使いたいです。だから私はOwin Selfhostで試してみた。私はSignalRを稼働させており、私はAngular2 Clientからアクセスでき、私はSignalRからクライアントにアクセスすることができるので、すべてがSignalRでうまくいくようです。 しかし、私がナンシーからデータにアクセス/受信しようとすると失敗します。私はクライアントからナンシーにアクセスできません。 私のウェブサイトとは異なるポートでサービスを実行しています。Owin SelfhostでのSignalRとNancyfxの使用|| Clientsideの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
};
};
}
}
:
そして、私のナンシーがどのように見える私は間違ってnacyアクセスしていた場合
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
}
}
私が把握することはできませんクライアントから、またはServersideで何らかのエラーが発生した場合(Webページは現時点でPort:3000で稼働しています)
もっと情報を求めたり、もっと多くの情報を得たい場合は、コードを聞いてみてください。しかし、私は最も重要なことを願っています。
あなたの中にこの問題で私を助けることができたら嬉しいです!
更新
ナンシーは(もナンシーtabiconを示す)404エラーを示しているブラウザのアドレスバーを通じてナンシーにアクセスします。だから、その方法では、私はそれを正しくアクセスできません。