我在嘗試使用Monodevelop
設置SignalR
項目。我通過Nuget
安裝了SignalR
軟件包,並且編譯了所有內容,但當我打開我的頁面時,我仍然收到cannot read property of undefined
。在MonoDevelop上運行SignalR ChatHub未定義
我無法弄清楚我錯過了什麼,在這一點上我想我可能會丟失一個配置文件。
這是我有:
// the view
@section scripts {
<script src="~/Scripts/jquery-2.2.3.min.js"></script>
<script src="~/Scripts/jquery.signalR-2.2.0.min.js"></script>
<!--Reference the autogenerated SignalR hub script. -->
<script src="~/signalr/hubs" type="text/javascript"></script>
<!--SignalR script to update the chat page and send messages.-->
<script>
$(function() {
// Reference the auto-generated proxy for the hub.
var chat = $.connection.chatHub;
// Create a function that the hub can call back to display messages.
console.log(chat);
chat.client.addNewMessageToPage = function (name, message) {
// Add the message to the page.
console.log('here');
$('#discussion').append('<li><strong>' + htmlEncode(name)
+ '</strong>: ' + htmlEncode(message) + '</li>');
};
// Get the user name and store it to prepend to messages.
$('#displayname').val(prompt('Enter your name:', ''));
// Set initial focus to message input box.
$('#message').focus();
// Start the connection.
$.connection.hub.start().done(function() {
$('#sendmessage').click(function() {
// Call the Send method on the hub.
chat.server.send($('#displayname').val(), $('#message').val());
// Clear text box and reset focus for next comment.
$('#message').val('').focus();
});
});
});
// This optional function html-encodes messages for display in the page.
function htmlEncode(value) {
var encodedValue = $('<div />').text(value).html();
return encodedValue;
}
</script>
}
似乎~/signalr/hubs
沒有404,但是當我預覽鉻的背景下,有什麼都沒有。這是一個空文件,這可能是一切的根本原因。
這是啓動文件。我放了一個斷點configuration
方法,它確實打了那個代碼。
using System;
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat
{
public class Startup
{
public Startup()
{
}
public void Configuration (IAppBuilder app)
{
app.MapSignalR();
}
}
}
這裏是樞紐:
using System;
using Microsoft.AspNet.SignalR;
using Microsoft.AspNet.SignalR.Hubs;
namespace SignalRChat
{
[HubName("chatHub")]
public class ChatHub : Hub
{
public void Send (string name, string message)
{
Clients.All.addNewMessageToPage (name, message);
}
public ChatHub()
{
}
}
}
編輯:運行在視覺工作室這個代碼在IIS服務器上和工作的事情。我認爲這可能是mono
的一個特定問題。我加了標籤。
是否使用的是單聲道的版本? ('mono --version') – GTHvidsten
我使用的是'4.2.3'版本 – Rhs
哪個SignalR DLL在您的執行文件夾中? (我必須同時使用'Microsoft.AspNet.SignalR.Core.dll'和'Microsoft.AspNet.SignalR.SystemWeb.dll') – GTHvidsten