1

次のように、AzureクラウドサービスのWebロールでAlchemyを使用して実装したWebソケットサーバーを必要とするMVC4Webサイトがあります。

namespace MvcWebRole1
{
    public class WebRole : RoleEntryPoint
    {
        private static List<UserContext> Users = new List<UserContext>();

        public override bool OnStart()
        {
            Task.Factory.StartNew(OnStartWebSocketServer, TaskCreationOptions.LongRunning);
            return base.OnStart();
        }

        private void OnStartWebSocketServer()
        {
            var aServer = new WebSocketServer(5004, IPAddress.Any)
            {
                OnReceive = OnReceive,
                OnSend = OnSend,
                OnConnect = OnConnect,
                OnConnected = OnConnected,
                OnDisconnect = OnDisconnect,
                TimeOut = new TimeSpan(0, 5, 0)
            };
            aServer.Start();           
        }

現在もローカルでデバッグしようとしていますが、サーバーに接続できませんUnexpected response code: 200。Chromeデバッガーにアクセスします。

コンソールを表示するなど、サーバーが実行されていることを確認する方法はありますか?これも良いアプローチですか?私はAzureとWebソケットにまったく慣れておらず、まだ基本を学ぼうとしています。基本設定を確認していない場合は、失礼します。

編集:Sandrinoによって提案されたように、私はWebロールのエンドポイントを確認しました。未使用であることを期待して、すべてをポート5004に切り替えました。しかし、私はまだ得Windows Azure Tools: Warning: Remapping private port 5004 to 5005 in role 'MvcWebRole1' to avoid conflict during emulation.ます。また、これらのポートのファイアウォールに例外を追加しましたが、それでも何も機能しません。

4

1 に答える 1

1

私は問題が何であるかを理解しました。私が開いていたエンドポイントは HTTP でしたが、Web ソケットは TCP で動作します。問題を解決するには、次のものが必要です。

  • http を使用する Web サイトの 1 つのエンドポイント。
  • tcp と webrole.cs で指定されたポートを使用する Web ソケット サーバーの別のエンドポイント
于 2013-02-17T15:36:11.617 に答える