Erro de objeto indefinido em var chat = $ .connection.chat; enquanto estiver usando SignalR

9

Eu tentei instalar a biblioteca SignalR para criar um exemplo de aplicativo de bate-papo. Eu acredito que eu segui todos os passos dados na documentação. Eu não tenho certeza do que poderia ser um motivo de falha.

Está falhando quando cria um objeto de bate-papo. Estou usando o VS2010 e baixei o SignalR usando o utilitário de download de pacotes VS2010.

Alguém teve algum problema com isso?

Obrigado Samir

Obrigado Hurricanepkt por me ajudar.

Sim, recebi todos os sinais via nuget, usando a caixa de diálogo 'Add Library Package' do VS2010. Eu estava recebendo o erro de objeto indefinido, em var chat = $ .connection.chat;

Eu apenas fiz isso funcionar, mas era o ASP.NET Web Application Project. Eu não consegui fazer isso funcionar com o projeto ASP.NET Website. Eu não sei porque.

Acredito que seja devido à criação dinâmica de dll no Projeto do website versus dll fixa no ASP.NET Web Application Project.

Você encontrou esse problema?

    
por Samir Patel 17.09.2011 в 23:27
fonte

4 respostas

4

Qual é o nome do seu hub? Se você mudou para algo diferente de "Chat", então não vai funcionar. Eu tive o mesmo problema porque mudei o meu para:

    public class ChatHub : Hub
    {
        public void Send(string message)
        {
            Clients.addMessage(message);
        }
    }

Dentro do Javascript isto:

var chat = $.connection.chat;

necessário para mudar para

var chat = $.connection.chatHub;
    
por rball 30.04.2012 / 21:24
fonte
1

Eu estava frustrado por causa do mesmo problema. Ele funciona no Web Project, mas no site não é. Então, verifiquei o arquivo de script que foi criado dinamicamente.

Àesquerda:WebProject-Right:WebSite( link )

Como você pode ver no site, ele não está criando o objeto "chat", por isso ele é indefinido. Depois de ler suas frases sobre a criação de dll dinâmica, eu coloquei meu código por trás do arquivo em um arquivo .cs separado e coloquei esse arquivo cs na pasta App_Code. Eu tentei e bam, funcionou. Verificado o arquivo de script dinâmico:

( link )

Eu não sei muito sobre o problema técnico aqui, mas colocar seu código em um arquivo de classe separado que está localizado na pasta App_Code resolve o problema. Tenha um bom dia

    
por ozgkrc 20.07.2012 / 08:23
fonte
0

Ao ler seu problema, encontrei o mesmo problema ao usá-lo em um aplicativo MVC3.

Você pode postar sua referência de script? Eu quase posso apostar que você está usando algo assim, uma string de localização estática:

"../script/signalr.min.js"

Quando você deve estar usando (ou o equivalente de WebForms de caminhos relativos):

<!-- Used for SignalR -->
<script src="@Url.Content("~/Scripts/jquery-1.6.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.signalR.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/signalr/hubs")" type="text/javascript"></script>

Eu encontrei esse mesmo problema hoje e o próprio David Fowler me ajudou.

De qualquer forma, leia meu post e siga para um T e você terá uma versão funcional com o MVC3.

link

    
por Only Bolivian Here 18.09.2011 / 04:51
fonte
0

Bem, eu suspeito que nós seguimos a mesma documentação / tutorial - tutorial para signalR 1.1.3 usando ASP.net Web Application (Última versão do signalR para o .NET framework 4 - versões superiores do signalR não são suportadas).

Se você é como eu, você também deve executar o sinalR no aplicativo da web sem qualquer problema e, em seguida, continuar a implementar o mesmo para o site. No meu caso, trata-se de referenciar meus arquivos JavaScript, graças a Lars Höppner.

Estas linhas

<script src="/Scripts/jquery-1.6.4.min.js" ></script>
<script src="/Scripts/jquery.signalR-1.1.3.js"></script>
<script src="/signalr/hubs"></script>

só deve ser

<script src="Scripts/jquery-1.6.4.min.js" ></script>
<script src="Scripts/jquery.signalR-1.1.3.js"></script>
<script src="signalr/hubs"></script>
    
por Arman 12.12.2013 / 23:18
fonte