4

SignalRのドキュメントを読み、いくつかのビデオを視聴しましたが、Winformsアプリケーション内でSignalRをホストすることができません。

SignalR wikiのソースコードを使用してみました:https ://github.com/SignalR/SignalR/wiki/Self-host

「フルサンプル-ハブ」を見ると、「サーバー」変数とは何ですか?これがどのように機能するのか、またはC#に変換する方法がわかりません。ウィキによると、「デフォルトのSelfHost実装はHttpListener上に構築されており、あらゆる種類のアプリケーション(コンソール、Windowsサービスなど)でホストできます。」

SignalRをC#でホストし、asp.netで使用したいと思います。誰かが私のためにこれにいくつかの光を当ててくれませんか?

4

2 に答える 2

3

Wikiのサンプルは正常に機能します。

SignalR.Hosting.SelfNuGet(パッケージマネージャーコンソール)を使用してパッケージをインストールしてください

インストール-パッケージSignalR.Hosting.Self

名前空間Serverに住んでいます。SignalR.Hosting.Self

サンプル

コンソールアプリケーション

using System;

namespace MyConsoleApplication
{
    static class Program
    {
        static void Main(string[] args)
        {
            string url = "http://localhost:8081/";
            var server = new SignalR.Hosting.Self.Server(url);

            // Map the default hub url (/signalr)
            server.MapHubs();

            // Start the server
            server.Start();

            Console.WriteLine("Server running on {0}", url);

            // Keep going until somebody hits 'x'
            while (true)
            {
                ConsoleKeyInfo ki = Console.ReadKey(true);
                if (ki.Key == ConsoleKey.X)
                {
                    break;
                }
            }
        }

        public class MyHub : SignalR.Hubs.Hub
        {
            public void Send(string message)
            {
                Clients.addMessage(message);
            }
        }
    }
}

Asp.NET / Javascript

<script type="text/javascript" src="Scripts/jquery-1.7.2.js"></script>
<script src="/Scripts/jquery.signalR.js" type="text/javascript"></script>
<script src="http://localhost:8081/signalr"></script>

<script type="text/javascript">
    $(function () {
       // create signalr hub connection
       myHub= $.connection.myHub;

       // start hub connection and call the send method
       $.connection.hub.start(function () {
           myHub.Send('Hello');
       });
    });
</script>

追加の回答がある場合はコメントを残してください

于 2012-07-18T21:05:06.800 に答える
2

これをC#およびASP.NETで機能させるには、「クロスドメイン」を使用する必要がありました。

私が使用したJavaScriptでは:

<script type="text/javascript" src='http://localhost:8081/signalr/hubs'></script>

そして追加:

$.connection.hub.url = 'http://localhost:8081/signalr'
于 2012-07-19T17:59:23.383 に答える