UPDATE4:(解決済み)
- 新しいプロジェクトを作成しました。
- インポートされたソース;
- SignalR を最新バージョンに更新しました (NuGet パッケージ マネージャー コンソールを使用)。
- 対応する変更を行いました(公式ドキュメントによると:http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-server)。
結局、すべてが魔法のように機能しました。SignalR チームに感謝します。
この SignalR でうまくいきました。試してみるのが待ちきれません!
このチュートリアルを見つけました - SignalR - 5 Minute Demo ( http://www.youtube.com/watch?v=tEBaDo_sFfA )
しかし、私はいくつかの問題を抱えています: - VS2012Ultimate をインストールし、サンプルの ASP.NET MVC4 インターネット アプリを作成した後、[参照] を右クリック -> [NuGet パッケージの管理] を選択し、SignalR を検索します.... ビデオのように表示されません。それら:SignalR、SignalR.Js、SignalR.Server ... :(誰も理由を知っていますか?
UPDATE1 : SignalR ( http://nuget.org/packages/microsoft.aspnet.signalr ) をインストールした後、その asp.net 秋の更新 ( http://www.microsoft.com/en-us/download ) をインストールしました/details.aspx?id=35493 )。
しかし、 からの関数 " writeMessage
"に関して、以下からエラーが発生しますChatHub.cs
。
"Error1'Microsoft.AspNet.SignalR.Hubs.HubConnectionContext' does not contain a definition for 'writeMessage'
and no extension method 'writeMessage' accepting a first argument of type
'Microsoft.AspNet.SignalR.Hubs.HubConnectionContext' could be found (are you missing a using directive or an
assembly reference? ..\MvcApplication1\Hubs\ChatHub.cs"
Clients.All.
またはを使用してこのエラーを「解決」しClients.Others.
、チャットの初期化と使用の直後にハブを開始するとchat.writeMessage
、GoogleChrome コンソールにロードするときに 2 つのエラーが発生します。
Index.cshtmlで:
"Uncaught TypeError: Cannot set property 'writeMessage' of undefined"
localhost:3420/signalr/ hubs :
"Uncaught TypeError: Object #<Object> has no method 'createProxy'"
この行で:
// Create and store the hub proxy hub._.proxy = hubConnection.createProxy(hub._.hubName);
Clients.All.
またはを使用してこのエラーを「解決」した後Clients.Others.
、最後にハブを開始し、chat.client.writeMessage
(Microsoft.AspNet.SignalR.Clientをインストールしました)を使用すると、GoogleChromeコンソールにロードするときに2つのエラーが発生します。
Index.cshtmlで:
"Uncaught TypeError: Cannot read property 'client' of undefined"
誰か助けてくれませんか?! :(
前もって感謝します!!
ファイル ChatHub.cs
:
namespace MvcApplication1.Hubs
{
//[Microsoft.AspNet.SignalR.Hubs.HubName("chathub")]
[Microsoft.AspNet.SignalR.Hubs.HubName("chatHub")]
public class ChatHub : Microsoft.AspNet.SignalR.Hubs.Hub
{
public void BroadcastMessage(string message)
{
//rebroadcast the message to all the connected clients
Clients.writeMessage(message);//ERROR on compile
//I tried both of the followings, give no error, BUT when i press Submit doesn't appear messages anywhere
//Clients.All.writeMessage(message);
//Clients.Others.writeMessage(message);
}
}
}
ファイル Index.cshtml
:
@section scripts
{
<script type="text/javascript" src="~/Scripts/jquery.signalR-1.0.0-alpha2.js"></script>
@*not working, GET localhost:3420/SignalR 500 (Internal Server Error)*@
@*<script type="text/javascript" src="SignalR"></script>*@
@* with any of these declarations i don't get 500 error any more, but still not working *@
<script type="text/javascript" src="~/signalr/hubs"></script>
@*<script type="text/javascript" src="../signalr/hubs"></script>*@
<script type="text/javascript">
$(document).ready(function()
{
//i tried these, but in vain..
//var connection = new Microsoft.AspNet.SignalR.Connection("localhost:3420/");
//$.connection.hub.url = 'localhost:3420/signalr/';
var chat = $.connection.chatHub;
$.connection.hub.start();
//Uncaught TypeError: Cannot set property 'writeMessage' of undefined
//chat.writeMessage = function (msg)
//Uncaught TypeError: Cannot read property 'client' of undefined
chat.client.writeMessage = function (msg) {
{
$("#messages").append("<li>" + msg + "</li>");
}
$("#buttonSubmit").click(function ()
{
//chat.broadcastMessage($("#txtInput").val());
chat.server.broadcastMessage($("#txtInput").val());
});
$.connection.hub.start();//just one error at client
});
</script>
}
<h5>Chat with SignalR</h5>
<fieldset>
<legend>SignalR Demo</legend>
<label for="txtInput">Chat Message</label>
<input id="txtInput" type="text" />
<button id="buttonSubmit">Submit</button>
<fieldset>
<legend>Messages</legend>
<ul id="messages"></ul>
</fieldset>
</fieldset>
UPDATE2 :
Tim B Jamesのアドバイスの後、私は:
- 新しい ASP.NET MVC 4 プロジェクトを作成しました。
- 推奨されるコマンドを使用してNuGet経由でSignalRをインストールしました。
- https://github.com/SignalR/SignalR/wiki/QuickStart-Hubsのハブでソース コードの例を試してみましたが、動作しませんでした!
言及:
- function のコードMain
を my HomeController.cs
-> function:に入れpublic ActionResult Index()
ます。
- この行を変更しました:
var hubConnection = new HubConnection("localhost/mysite");
これで:
var hubConnection = new HubConnection("localhost:14079");
しかし、私のページは読み込まれません (「ローカルホストを待っています...」)
- Main からのコードをコントローラーの関数に入れないと、
私はこのエラーが発生します:
"Uncaught TypeError: Cannot read property 'chat' of undefined "
on this line:
var chat = $.connection.chat;
UPDATE3 :
UPDATE2 で取り消し線行
UPDATE4:(解決済み)
冒頭の指摘。