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, "&").replace(/</g, "<").replace(/>/g, ">");
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.
Utilisez-vous cela dans votre html?
<!--Reference the SignalR library. -->
<script src="Scripts/jquery.signalR-2.2.1.min.js"></script>
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>
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.