2017-10-13 9 views
0

私は、WebApiプロジェクトとWebプロジェクトでHubを使用したいSignalRプロジェクトに取り組んでいます。だから私は1つのクラスライブラリプロジェクトを作成し、そこにハブを実装しました。ここに私のハブであるハブが異なるプロジェクトのSignalRにある場合、ハブに接続するには?

-ChatHub 
    -Hub 
-Webapi 
-Website 

マイプロジェクト構造は次のようになります

[HubName("chathub")] 
public class ChatHub : Hub 
{ 
    public override Task OnConnected() 
    { 
     return base.OnConnected(); 
    } 

    public override Task OnReconnected() 
    { 
     return base.OnReconnected(); 
    } 
} 

私はそれがうまく働いている私のウェブサイトからハブを呼び出します。ここで

<script src="~/signalr/hubs"></script> 
var chatHub = $.connection.chathub; 

は私が外からハブを接続する方法である(アンドロイド):

mHubConnection = new HubConnection(http://{IpAddress}/ChatApp/); 
mHubProxy = mHubConnection.createHubProxy(chathub); 

API:

public IHttpActionResult LoginUser([FromBody]LoginModel model) 
{ 
    var hubContext = GlobalHost.ConnectionManager.GetHubContext<ChatHub>(); 
    //chatUser logic here 
    hubContext.Clients.Client(chatUser.ConnectionId).receiver(response); 
} 

しかし、それは私にエラー与える:

java.util.concurrent.ExecutionException: microsoft.aspnet.signalr.client.transport.NegotiationException: There was a problem in the negotiation with the server 10-13 18:15:54.074 18686-18686/com.chatapp.android W/System.err: Caused by: microsoft.aspnet.signalr.client.http.InvalidHttpStatusCodeException: Invalid status code: 404

方法を私のハブがAPIプロジェクトの外にいる場合は、ハブに接続できますか?

私はSharing a SignalR hub between a WebApi and MVC projectを通過しましたが、回答が得られませんでした。

答えて

1

接続とプロキシをハブに設定した後、mHubConnection.Start()を呼び出していますか?また、HubConnectionコンストラクターにハブの正しい場所にURLが渡されていますか?あなたがまだ通っていない場合は、役に立つかもしれない2つのリンクがあります:Access hub from .NET clientconfigure signalr url

関連する問題