Wie man eine Liste der verbundenen clients auf SignalR

Ich bin ganz neu mit SignalR.
Meine erste Aufgabe ist es, einfache chat-app.

Ich war surfen und zu Lesen, und schließlich eine Seite, wo Sie kommen und chat und es funktioniert gut.

Nun brauche ich, um eine Liste der verbundenen clients. Um dies zu erreichen habe ich schrieb Sie den folgenden code.
Dies ist meine NABE.

public class ChatHub: Hub
{

    chatEntities dc = new chatEntities();
    public void Send(string message,string clientName)
    {
        Clients.addMessage(message,clientName);

    }

    //I want to save the user into my database, when they join 
    public void Joined(string userId,string userName)
    {

        CurrentChattingUsers cu = new CurrentChattingUsers();
        cu.ConnectionId = userId;
        cu.UserName = userName;

        dc.CurrentChattingUsers.AddObject(cu);
        dc.SaveChanges();


       Clients.joins(userId, userName);
    }

    //This will return a list of connected user from my db table.
    public List<ClientModel> GetConnectedUsers()
    {
        var query = (from k in dc.CurrentChattingUsers
                     select new ClientModel()
                     {
                         FullName = k.UserName,
                         UserId = k.ConnectionId
                     }).ToList();
        return query;
    }   


}

Und das Wars...was Nun???
Bin ich denn die richtige Richtung? Wenn, bin ich dann zum Aufruf dieser Methoden vom view?
Einige gute Vorschläge, die wirklich helfen, mich aus.
cheers

EDIT:

Ich habe den folgenden script, wenn sich der hub beginnen

$.connection.hub.start(function () {
            chat.getConnectedUsers();

        });

Dies ist die Methode, gibt die client-Namen in meinem Hub

  public List<ClientModel> GetConnectedUsers()
    {
        var data = (from k in dc.Users
                     select new ClientModel()
                     {
                         FullName = k.UserName

                     }).ToList();

         Clients.loadUsers(data);
        return data;
    }

in firebug sehe ich, dass es etwas zurückgibt, wie folgt;

{"State":{},"Result":[{"FullName":"mokarom","UserId":null},  {"FullName":"aka8000","UserId":null},{"FullName":"johnnyno5","UserId":null},{"FullName":"reza","UserId":null},{"FullName":"amyo","UserId":null},{"FullName":"rezatech","UserId":null}],"Id":"0","Error":null,"StackTrace":null}

Aber wie würde ich zeigen, dass meiner Ansicht??

EDIT:

diese Weise wird die gesamte Ansicht so weit

<script type="text/javascript">
    var chat;
    var myClientName
    $(document).ready(function(){

      myClientName = '@Request.Cookies["ChatterName"].Value';


        //Created proxy
        chat = $.connection.chatHub;
        //Assign a function to be called by the server
        chat.addMessage = onAddMessage;

        //Register a function with the button click
        $("#broadcast").click(onBroadcast);


        $('#message').keydown(function (e) {
            if (e.which == 13) { //Enter
                e.preventDefault();

                onBroadcast();

            }
        });

        //Start the connection
        $.connection.hub.start(function () {
           chat.getConnectedUsers();

        });

        chat.loadUsers = function (data) {
            loadUsers(data); 

         };
    });


    function onAddMessage(message,clientName) {
        //Add the message to the list
        $('#messages').append('<div class="chatterName">' + clientName + ' </div><div class="chatterMessage"> ' + message + '</div><div class="clear">');

    }
    function onBroadcast() {
        //Call the chat method on the server
        chat.send($('#message').val(), myClientName);
        $('#message').val('');
    }
    function loadUsers(data) {
        $('#clientList').html(data.Result[0].FullName);

    }
</script>

Problem: nichts sehen hier: $('#clientList').html(data.Ergebnis[0].FullName);
firebug sagt 'data ist nicht definiert'

InformationsquelleAutor kandroid | 2012-09-30
Schreibe einen Kommentar