これは私のチャット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();
});
これは、チャット入力でページを実行すると発生するエラーです。
Uncaught ReferenceError:signalR is not defined at chat.js:3
chat.js
の3行目は次のとおりです。
var connection = new signalR.HubConnectionBuilder().withUrl("/chathub").build();
Visual Studio Add Client Side LibraryからSignalR
クライアントライブラリをダウンロードしました。私が今持っているのはjquery.signalR.js
というファイルで、ASP.NET SignalR JavaScriptライブラリ2.4.0です
ただし、このエラーは解消されず、何らかの理由で続行できません。
これをHTMLで使用していますか?
<!--Reference the SignalR library. -->
<script src="Scripts/jquery.signalR-2.2.1.min.js"></script>
編集:
Jquery-signalrを使用する場合は、jqueryの依存関係を追加することを忘れないでください
<!--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>
私の場合、sjgnalr.jsファイルとchat.jsファイルの順序を忘れています。
<script src="~/lib/signalr/dist/browser/signalr.js"></script>
<script src="~/js/chat.js"></script>
私の間違いは仲間としてでした:
<script src="~/js/chat.js"></script>
<script src="~/lib/signalr/dist/browser/signalr.js"></script>
原因私はjsファイルの順序を気にしていないので、SignalRは定義されていませんが通常です。