web-dev-qa-db-fra.com

ASP.NET Core 2.1 SignalR n'est pas défini

Ceci est mon chat javascript

"use strict";

var connection = new signalR.HubConnectionBuilder().withUrl("/chathub").build();

connection.on("ReceiveMessage", function (message) {
    var msg = message.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
    var encodedMsg = msg;
    var li = document.createElement("li");
    li.textContent = encodedMsg;
    document.getElementById("Messages").appendChild(li);
});

connection.start().catch(function (err) {
    return console.error(err.toString());
});

document.getElementById("Send").addEventListener("click", function (event) {
    var message = document.getElementById("Message").value;
    connection.invoke("SendMessage", message).catch(function (err) {
        return console.error(err.toString());
    });
    event.preventDefault();
});

Voici l'erreur que j'obtiens lorsque j'exécute la page avec mon entrée de chat:

Uncaught ReferenceError: signalR n'est pas défini dans chat.js: 3

ligne 3 dans chat.js est:

var connection = new signalR.HubConnectionBuilder().withUrl("/chathub").build();

J'ai téléchargé la bibliothèque client SignalR à partir de Visual Studio Add Client Side Library. Ce que j'ai maintenant, c'est un fichier appelé jquery.signalR.js et c'est la ASP.NET SignalR Javascript Library 2.4.0.

Cependant, cette erreur ne disparaît pas et je ne peux pas continuer pour une raison quelconque.

6
JianYA

Utilisez-vous cela dans votre html?

<!--Reference the SignalR library. -->
<script src="Scripts/jquery.signalR-2.2.1.min.js"></script>

De: https://docs.Microsoft.com/en-us/aspnet/signalr/overview/getting-started/tutorial-getting-started-with-signalr

Modifier:

N'oubliez pas d'ajouter les dépendances jquery si vous utilisez jquery-signalr

<!--Reference the jQuery library. -->
<script src="Scripts/jquery-3.1.1.min.js" ></script>
<script src="Scripts/jquery.signalR-2.2.1.min.js"></script>
0
Fy Z1K

Pour mon cas, j'oublie l'ordre des fichiers sjgnalr.js et chat.js.

  <script src="~/lib/signalr/dist/browser/signalr.js"></script>
    <script src="~/js/chat.js"></script>

Mon erreur était comme des flux:

  <script src="~/js/chat.js"></script>
      <script src="~/lib/signalr/dist/browser/signalr.js"></script>

Parce que je ne me soucie pas de l'ordre des fichiers js, donc SignalR n'est pas défini est habituel.

0
iman mohadesi