2017-06-07 1 views
1

Je cours l'exemple stockr signal et essaye de modifier le code et essaie quelque chose de différent. Ce que je veux, c'est appuyer sur un bouton avant pour appeler un appel ajax et de là appeler une méthode de hub. Quand je fais cela, je ne suis pas frappais mon point d'arrêt dans ma méthode de plaque tournanteMéthode d'appel du concentrateur de signal à partir du code derrière l'appel Ajax

changement de code final avant:

$.connection.hub.start().done(function() { 
$('#sendmessage').click(function() { 
// Call the Send method on the hub. 
$.ajax({ 

url: '/home/MyTest/', 
type: "POST", 
success: function() { 
alert("done"); 
}, error: function (jqXHR, exception) { 
alert("failed"); 
} 

}); 
//chat.server.send($('#displayname').val(), $('#message').val()); 
// Clear text box and reset focus for next comment. 
$('#message').val('').focus(); 
}); 
}); 

Dans HomeController.cs

[HttpPost] 
public void MyTest() 
{ 
var context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>(); 
context.Clients.All.send("a","b"); 
} 

ChatHub.cs

public class ChatHub : Hub 
{ 
public void Send(string name, string message) 
{ 
// Call the addNewMessageToPage method to update clients. 
Clients.All.addNewMessageToPage(name, message); 
} 
} 

Répondre

1

La méthode Hub sur le serveur n'est pas exécutée ... Qu'est-ce que

var context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>(); context.Clients.All.send("a","b");

dit est: Sur chaque client qui a une connexion ouverte/active du Hub, je suis appelant une fonction sendsur le client. Pas sur le Hub sur le serveur.

+0

ahhhhhhh ... merci. Je tirais mes cheveux. Alors dans cette fonction, appelez "envoyer". Je voudrais invoquer l'appel au serveur correct –

+0

C'est une façon de le faire, oui pour sûr –

+0

Merci beaucoup Mark –