2

vS2012 で開発されたこの記事http://www.asp.net/signalr/overview/getting-started/tutorial-high-frequency-realtime-with-signalrのデモを採用しようとしていますが、vs2010 を使用しています。私はモデルを作りました:

  [HubName("moveShapeHub")]
    public class MoveShapeHub : Hub
    {
        public void UpdateModel(ShapeModel clientModel)
        {
            clientModel.LastUpdatedBy = Context.ConnectionId;
            Clients.AllExcept(clientModel.LastUpdatedBy).updateShape(clientModel);
        }
    }

変更された Global.cs:

  protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
            RouteTable.Routes.MapHubs();
        }

ビューで:

 var moveShapeHub = $.connection.moveShapeHub,
        $shape = $("#shape"),

            shapeModel = {
                left: 0,
                top: 0
            };

        moveShapeHub.client.updateShape = function (model) {
            shapeModel = model;
            $shape.css({ left: model.left, top: model.top });
        };

        $.connection.hub.start().done(function () {
            $shape.draggable({
                drag: function () {
                    shapeModel = $shape.offset();
                    moveShapeHub.server.updateModel(shapeModel);
                }
            });

次のエラーが表示されます: 未定義または null 参照のプロパティ 'client' を取得できません。

私が間違っていることを考えてください。あなたの提案をいただければ幸いです。

4

2 に答える 2

0

サーバーとの接続が確立されていることを確認しましたか。connection.hub.start メソッドの最後に a を追加しない場合は、正常に接続されているかどうかを確認して.fail(function(){ alert("failed to connect")});から、次の方法を試してください。

moveShapeHub.on('updateShape', function(model) {
        shapeModel = model;
        $shape.css({ left: model.left, top: model.top });
    });
于 2013-05-26T12:16:24.273 に答える