1

奇妙な問題に直面しています。サーバー関数を呼び出すことはできますが、その代わりにクライアント関数を呼び出そうとすると、呼び出されません何か間違っているか、実行するコードまたは構成が欠落していますか?

Visual Studio 2010 を使用して Web アプリを開発しています

サーバーコードは単純なクラスです

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.SignalR;

namespace SignalRDemo
{
    public class MyHub:Hub 
    {
        public void GetMessage(string msg)
        {

             Clients.All.getMsg1("Got :"+msg);

        }

    }
}`

私が持っているグローバルasaxで

protected void Application_Start(object sender, EventArgs e)
{
    RouteTable.Routes.MapHubs();
}

クライアント側のコード btn をクリックするだけで、サーバー関数 GetMessage が期待どおりに呼び出されますが、代わりに getMsg1 は呼び出されません

$(document).ready(function () {
    debugger;
    var chat = $.connection.myHub;
    chat.getMsg1 = function (msg) {
        debugger;
        alert(msg);
    };
    $("#btn").click(function () {
        chat.server.getMessage("called");
    });

    $.connection.hub.start() 
});

私が行ったハブ接続を開始する前にクライアント関数を登録する必要があることがわかりましたが、それでも機能せず、エラーも発生しません

4

1 に答える 1