2011-11-28 38 views
5

tengo clase concentrador:SignalR Javascript devolución de llamada no funciona

public class ChatHub : Hub 
{ 
    // Send message 
    public void Send(string message) 
    { 
     Clients.addMessage(DateTime.Now.ToString("HH:mm:ss") + " " + message); 
    } 
} 

y JavaScript:

// Proxy created on the fly 
var chat = $.connection.chatHub; 

// Declare a function on the chat hub so the server can invoke it 
chat.addMessage = function(message) { 
    alert("message:" + message); 
    $('#chat').append('<div>' + message + '</div>'); 
}; 


$("#sendButton").click(function() { 

    // Call the chat method on the server 
    chat.send($('#message').val()) 
     .done(function() { 
      console.log('Success!') 
     }) 
     .fail(function (e) { 
      console.warn(e); 
     }) 
}); 

// Start the connection 
$.connection.hub.start(); 

Todo conexión están bien: enter image description here

Si utilizo punto de interrupción en aquí clientes. addMessage (DateTime.Now.ToString ("HH: mm: ss") + "" + mensaje); todo está bien.

Pero no obtengo devolución de llamada en la función javascript. alerta ("mensaje:" + mensaje); nunca se ejecuta

+0

El código parece correcto. ¿Dónde lo estás ejecutando? IIS? VS? – davidfowl

+0

@dfowler en ISS 7.5 –

+0

¿Está el código de javascript arriba en el evento listo o similar? – escouser

Respuesta

3

¿Agregó el cliente al centro de la señal?

<script src="/signalr/hubs" type="text/javascript"></script> 
Cuestiones relacionadas