signalr - TypeError: чат не определен

Я разрабатываю простой чат с signalr, и я обнаружил ошибку, которую до сих пор не могу устранить.

Captura del error

В нем говорится, что переменная chat не определена, что не соответствует действительности, поскольку я объявляю ее.

var chat = $.connection.chat;

$(function () {
    chat.client.nuevoMensaje = onNewMessage;
    $.connection.hub.start();
});

function onNewMessage(message) {
    chat.server.enviarMensaje("hola");
};

Я добавил все необходимые ссылки.




Это концентратор, который я создал на стороне сервера.

[HubName("Chat")]
public class ChatHub : Hub
{
    public void EnviarMensaje(string mensaje)
    {
        var msg = string.Format("{0} {1}", Context.ConnectionId, mensaje);
        Clients.All.nuevoMensaje(msg);
    }

    public void UnirSala(string sala)
    {
        Groups.Add(Context.ConnectionId, sala);
    }

    public void EnviarMensajeSala(string sala, string mensaje)
    {
        var msg = string.Format("{0} {1}", Context.ConnectionId, mensaje);
        Clients.Group(sala).nuevoMensaje(msg);
    }

    public void EnviarMensajeData(EnviarData data)
    {
        Clients.All.nuevaData(data);
    }


    public override Task OnConnected()
    {
        EnviarDataAMonitor("Conectado", Context.ConnectionId);
        return base.OnConnected();
    }

    public override Task OnDisconnected(bool stopCalled)
    {
        EnviarDataAMonitor("Desconectado", Context.ConnectionId);
        return base.OnDisconnected(stopCalled);
    }

    public override Task OnReconnected()
    {
        EnviarDataAMonitor("Reconexción", Context.ConnectionId);
        return base.OnReconnected();
    }

    private void EnviarDataAMonitor(string typoEvento, string connectionId)
    {
        var context = GlobalHost.ConnectionManager.GetHubContext();
        context.Clients.All.nuevoEvento(typoEvento, connectionId);
    }
}

Кто-нибудь знает причину ошибки, зная, что я уже объявил переменную?

5
задан 09.12.2015, 20:52
3 ответа

Уже я нашел проблему!

Когда он издавал мой вопрос, пыталось возможное решение.

Имя hub он перемещал это его плохо. Стороны сервера автоматический рукописный шрифт, который производил такого солитера как имя Chat но в клиенте он это называл chat.

Hub

[HubName("Chat")]
public class ChatHub : Hub
{
    .......

Код Клиент

var chat = $.connection.chat;

В этом случае существуют два решения, или, менять имя Hub, или меняться названный в коде клиент.

Меняя Hub

[HubName("chat")]
public class ChatHub : Hub
{
    .....

Меняя код клиент

var chat = $.connection.Chat;

Любой из этих двух случаев они стоились, важное - что имя hub назовитесь равным в стороне клиента, если имя hub он mensaje названный в javascript он должен бы быть $.connection.mensaje;

7
ответ дан 24.11.2019, 15:07

Гєnica explicaciГіn, что со мной случается, состоит в том, что $.connection.chat возвращает undefined и распределяется в твою переменную chat, что в sgte lГ-nea дает ошибку

2
ответ дан 24.11.2019, 15:07
  • 1
    Спасибо!, у тебя есть raz и # 243; n $.connection.chat возвращает undefined, сейчас я должен смотреть, из-за которого он возвращает эту ошибку, эх добавлено больше деталей. Привет. –  Andres Felipe Williams Suarez 06.12.2015, 20:14

Изменчивая чат находится вне scope в методе onNewMessage и поэтому говорит тебе, что она не определена.

Я двинул бы функцию onNewMessage внутри document.ready () jQuery, а именно:

$(function () {
    var chat = $.connection.chat;
    chat.client.nuevoMensaje = onNewMessage;
    $.connection.hub.start();

    function onNewMessage(message) {
      chat.server.enviarMensaje("hola");
   };

});
0
ответ дан 24.11.2019, 15:07
  • 1
    Привет, уже достаньте переменную chat из scope, из-за которых он был более подходящим для меня таким образом, но даже схвати и # 237; остается ошибка, уже добавьте больше деталей к вопросу. –  Andres Felipe Williams Suarez 06.12.2015, 20:16
  • 2
    Он не относится в нее l и # 237; nea от chat.server а до chat.client –  Carlos Muñoz 06.12.2015, 20:19
  • 3
    если, я это понимаю, но мне не следует оставлять ning и # 250; n м и # 233; совсем пока в scope Ready () из-за личных вопросов. и в chat.server не давай ошибку даже, ошибка - в названный hub, но уже resolv и # 237;:) тысячи спасибо за Ваши вклады. –  Andres Felipe Williams Suarez 06.12.2015, 20:41

Теги

Похожие вопросы