2011-12-29 14 views
1

私はthese guidelinesに従っています。OnDisconnectAsyncは機能していません...?

PersistentConnectionクラスのタスクOnDisconnectAsyncをオーバーライドしようとすると問題が発生します。ベローズとしてコード:

public class MyConnection:PersistentConnection 
{ 
...... 
protected override Task OnDisconnectAsync(string clientId) 
{ 
    //1. Remove clientID from <List> memberManager 
    Member member = (from m in memberManager where m.clientID == clientId select m).FirstOrDefault(); 
    memberManager.Remove(member); 
    return Connection.Broadcast(new { type = 1, value = "Disconneted ClientID" + clientId }); 
    } 
...... 

} 

私は、ユーザーに近いタブまたはブラウザは、OnDisconnectAsyncタスクが起動していないときということを知ります。

私のコードで何が間違っていますか、または切断されたクライアントをどのように知っていますか?

答えて

0

どのWebサーバー(IIS、IISExpress、Cassini)を使用していますか? IISまたはIISExpress isconnectを使用する場合、isconnectは起動しますが、即時ではありません(Webサーバーごとに異なり、cassiniは切断されません)。次のバージョンでは、応答性を改善するためにいくつかの変更を行います。

+0

ありがとうdfowler。 !私はIISExpressを使用していますが、この問題についての詳細を教えてください。接続が切断された後、このイベントがどれくらいの時間放たれるのですか? – hoanganh17b

+0

ナゲットで最新のパッケージを使用していますか?もしそうなら、切断を検出するのに15秒ぐらいかかることがあります。理論的にはそれ以上の時間がかかることがありますが、私はそれを実際にはあまり見ていません。 – davidfowl

関連する問題