在Owin Selfhost上使用SignalR和Nancyfx 客户端上的Angular2

Marvstar

我想在我的服务上使用SignalR和Nacyfx。因此,我尝试使用Owin Selfhost。我运行了SignalR,可以从Angular2 Client中访问它,也可以从SignalR中访问Client,因此SignalR似乎一切正常。但是,当我试图从南希访问/接收数据时,我失败了。我无法从客户访问我的南希。我在与网站不同的端口上运行服务。

程序:

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正在使用此代码。

我的南希(Nancy)看起来像:

class NancyServiceModule : Nancy.NancyModule
{
    private DatabaseAccess _dbAccess = new DatabaseAccess();
    public NancyServiceModule() : base("/nancy/"){

        Get["/accessible"] = parameters =>
        {
            return new Response
            {
                StatusCode = HttpStatusCode.OK
            };
        };
    }
}

在客户端,我尝试通过以下方式访问Nancy:

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上运行)

如果您需要更多信息或更多代码,请询问,但我希望我得到了最重要的信息。

如果你们中的一些人可以帮助我解决这个问题,那就太好了!

更新

通过浏览器地址栏访问nancy时,nancy显示404错误(还显示nancy tabicon)。因此,以某种方式可以正常工作,但我无法正确访问它。

Marvstar

经过一整周的绝望,我解决了这个问题。

我感到有点傻,因为因为我的模块不是Public这样而发生错误

public class NancyServiceModule : Nancy.NancyModule
{
....

解决了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SignalR.Owin与SignalR.SelfHost

使用OWIN SelfHost和Facebook身份验证

在WebApi中使用OAuth承载令牌生成和Owin将更多信息返回给客户端

在客户端上使用select(..)

无法使用Dart和angular2客户端运行GolLang后端

OWIN + SignalR + Autofac

如何使用C#WebApi客户端(Owin)获取令牌

具有OWIN SelfHost和Windows身份验证的WebApi

OWIN / Katana和BasicAuthentication

Ninject与Web Api,SignalR,MVC和OWIN

客户端上无法使用ComplexModel

使用网络客户端上传图片

使用OWIN的Websocket

405 WebAPI2上不允许的方法(OWIN)

Autofac Web API 2和Owin在StartupConfig中解析

如何将Autofac与WepApi 2和Owin集成?

WebApi 2,OWIN和AutoFac-更改HttpContextBase依赖项

Nuxt Fetch 运行 2 次(在服务器和客户端上)

SignalR-OWIN-多个端点

在Windows 10中的捕获客户端上使用IAudioClient2 :: SetClientProperties的预期效果是什么?

使用NancyFx Owin自托管服务器启用https

服务器向特定客户端发送事件时,Angular2不要使用socket.io-client(不同的angular2服务)

.NET Core WebAPI + OpenIdDict(凭证流)和Angular2客户端:成功登录(完全复制)后的401

如何为使用OWIN,SignalR和Selenium / Protractor的Web应用程序进行E2E测试-我只能通过第一个测试

在Angular2中使用RxJs 5为REST客户端提供基于时间的缓存

SignalR在客户端上发送的消息顺序是否恒定?

客户端上的SignalR处理超时事件

SignalR-客户端上连接的传输方法的可能值

OWIN上的Application_PreSendRequestHeaders()