最初のエラー:
Clients.joins(Context.ConnectionId, Caller.username, DateTime.Now);
する必要があります:
Clients.All.joins(Context.ConnectionId, Clients.Caller.username, DateTime.Now);
関連するその他のエラー: JS ファイルでは次のようになります: 行 15
chat.state.username = chatUsername;
2番目のエラー:
エラーはまさにそのとおりです。辞書オブジェクトから toList 関数がありません。次に、List または文字列を Chat オブジェクトに直接変換することはできません。
セットアップに基づいて、現在、返す適切な「ユーザー」リストがありません。現在、個々のユーザーを表すリストを保存しています。辞書オブジェクトを次のように変更してみてください。
static ConcurrentDictionary<string, User> _users = new ConcurrentDictionary<string, User>();
ユーザーの場所:
public class User
{
public string Name { get; set; }
public string ConnectionID { get; set; }
}
次に、 Joined 関数で次のことができます。
public void Joined()
{
User user = new User
{
Name = Clients.Caller.username,
ConnectionID = Context.ConnectionId
};
_users.TryAdd(user.ConnectionID, user);
Clients.All.joins(user.ConnectionID, user.Name, DateTime.Now);
}
最後に、GetConnectedUsers が終了します (「System.Linq; を使用していることを確認してください」):
public List<User> GetConnectedUsers()
{
return _users.Values.ToList();
}
私はおそらく少し船外に出ましたが、うまくいけばこれが役に立ちます!
SignalR 0.5.3 から 1.0 alpha への変更ログへの参照が必要な場合は、すべての変更に関するすばらしい投稿があります:
http://weblogs.asp.net/davidfowler/archive/2012/11/11/microsoft-asp -net-signalr.aspx