3

クライアントからサーバー側で SendNewOrderConfirmation を呼び出そうとすると、

「未定義」は関数ではありません

chat.SendNewOrderConfirmation(data); なぜこれが起こっているのか誰か知っていますか? ありがとうございました

サーバー側で

public class DriverChat : Hub, IDisconnect
{

    public void Start(Driver d)
    {
     ...
     }
    public void SendNewOrderConfirmation(OrderDriverData data)
    {
        LogFile.LogResponseTime(data.orderId, data.driverId);
    }
}

クライアント側で

 function begin(args) {

        try {
            //alert('begin');

            chat = $.connection.driverChat;

            chat.refresh = function () {
                ready++;
            };
            chat.disconnect = function () {
                alert('Server has disconnected');
            };
            $.connection.hub.start(function () {
                chat.start(args);
                ready++;
               // alert('signalR started');
            });
         } catch (e) {
            alert(e.message);
            return e.message;
        }
    }
    function confirmNewOrder(data) {
        try{
            alert('sending cofirmation');
            chat.SendNewOrderConfirmation(data);
            alert('confirmation sent');
        } catch (e) {
            alert(e);
        }
    };
}
4

2 に答える 2

7

使用している SignalR のバージョンによっては、答えが異なる場合があります。

まず、v1 Alpha より前のバージョンを使用している場合、コードは次のようになります。

chat.sendNewOrderConfirmation(data);

小文字に注意してくださいs

バージョン v1 Alpha 以降を使用している場合は、コードを次のようにする必要があります。

chat.server.sendNewOrderConfirmation(data);
于 2013-01-17T13:37:56.213 に答える
0

ハブの JavaScript 生成ファイルを登録する必要があります。これをページ (またはマスター ページ) に追加します。

<script src="<%: ResolveUrl("~/signalr/hubs") %>"></script>
于 2013-01-17T13:23:14.583 に答える