我使用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);
//-------------------------------------
但是说服务器的行,从来没有达到过任何东西,因为它说它们不是函数
任何想法都可能发生这种情况...... ???任何人都可以帮我这个...... ??? 谢谢,现在...... !!!!