1

我有以下使用 SignalR 实现的代码:

启动:

[assembly: OwinStartupAttribute("StartupConfiguration", typeof(AGENDA.Startup))]
    namespace AGENDA
    {
        public class Startup
        {
            public void Configuration(IAppBuilder app)
            {
                var hubConfiguration = new HubConfiguration();
                hubConfiguration.EnableDetailedErrors = true;
                hubConfiguration.EnableJavaScriptProxies = true;

                app.MapSignalR();
            }
        }
    }

服务器:在这里我创建了用于捕获服务器的各种方法,并且可以毫无问题地接收信息,但是当我从客户端发送信息时,它到达时是空的。

public class MensajesHub : Hub
    {
        private EventModel _model;
        private bool _modelUpdated = false;
        public void UpdateModel(EventModel clientModel)
        {
            clientModel.LastUpdatedBy = Context.ConnectionId;
            Clients.AllExcept(clientModel.LastUpdatedBy).UpdateMensaje(clientModel);
            UpdateMensaje(clientModel);
        }

        public void UpdateMensaje(EventModel clientModel)
        {
            _model = clientModel;
            _modelUpdated = true;
        }

        [HubMethodName("EnviarMensajes")]
        public static void EnviarMensajes()
        {
            IHubContext context = GlobalHost.ConnectionManager.GetHubContext<MensajesHub>();
            context.Clients.All.updateMessages();
        }
    }

这是我创建用于捕获服务器的各种方法并且可以毫无问题地接收信息的地方,但是当我从客户端发送信息时,它到达时是空的。

public class EventModel
    {
        [JsonProperty("id_cita")]
        public long Id_Cita { get; set; }

        [JsonProperty("descripcion_cita")]
        public string Descripcion_Cita { get; set; }

        [JsonProperty("start")]
        public DateTime Start { get; set; }

        [JsonProperty("end")]
        public DateTime End { get; set; }

        [JsonProperty("id_recurso")]
        public long Id_Recurso { get; set; }

        [JsonProperty("recurso_nombre")]
        public string Recurso_Nombre { get; set; }

        [JsonProperty("categoria")]
        public int Categoria { get; set; }

        [JsonIgnore]
        public string LastUpdatedBy { get; set; }
    }

客户:
我就是这样与SignalR建立连接的,是成功的。

//SignalR Code
 let mensajes = $.hubConnection();
 //let mensajes = connection;
 console.log(mensajes);
 conexion = this.props.mensajes;
 console.log(conexion);
 conexion.start()
 .done(function (model) {
 conexion.logging = true;
 console.log(conexion);
 console.log('Now connected, connection ID=' + conexion.id);
 updateServerModel();
 })
 .fail(function () {
 conexion.hub.logging = false;
 console.log(conexion);
 console.log('Could not connect');
 });

这就是我有冲突的地方,起初它给我带来了服务器的方法,但我不能让客户端传递给服务器。

function updateServerModel() {
console.log(conexion);
conexion.server.updateMensaje();
console.log(conexion);
conexion.server.updateModel();
console.log(conexion);
console.log(conexion.server);
console.log(conexion);
}
console.log(conexion);
//-------------------------------------

但是说服务器的行,从来没有达到任何东西,因为它说它们不是一个函数

任何想法,这可能会发生...... ??? 任何人都可以帮我解决这个问题... ??? 谢谢,从现在开始......!!!!

4

0 回答 0