jquery - net - signalr example c#
JQuery 3 y SignalR 2.2.0 (3)
Debes editar el código de signalR por ti mismo. En jquery 3 eliminaron el acceso directo para el evento de carga:
Cambio de ruptura: .load (), .unload () y .error () eliminados
Estos métodos son accesos directos para operaciones de eventos, pero tenían varias limitaciones de API. El método de evento .load () entró en conflicto con el método ajax .load (). El método .error () no se pudo usar con window.onerror debido a la forma en que se define el método DOM. Si necesita adjuntar eventos con estos nombres, use el método .on (), por ejemplo, cambie $ ("img"). Load (fn) a $ (img) .on ("load", fn).
https://jquery.com/upgrade-guide/3.0/
así que en el archivo jquery.signalR-{version}.js
:
Debes actualizar esta línea:
_pageWindow.load(function () { _pageLoaded = true; });
A :
_pageWindow.on("load",function () { _pageLoaded = true; });
Yo uso SignalR 2.2.0 en un proyecto MVC5. SignalR depende de JQuery en el lado del cliente.
JQuery lanzó recientemente una nueva versión, la actualicé de Nuget, específicamente de la versión 2.2.4 a 3.0.0.1, pero luego SignalR dejó de funcionar. El comando de inicio "$ .connection.hub" en javascript falla. Después de mucho tiempo de rascarme la cabeza, bajé la versión de JQuery a 2.2.4 y todo está bien de nuevo.
¿Soy el único que tiene este problema? ¿Hay alguna solución?
Gracias.
Finalmente la versión 2.2.1 de SignalR fue lanzada, resolviendo este problema. Gracias por todos los comentarios.
Si aún obtienes errores como este después de actualizar a 2.2.1
y jQuery 3.x, sigue leyendo ...
TypeError: Cannot read property ''client'' of undefined
Como yo, probablemente esté utilizando el proxy generado dinámicamente , y comprobó su /signalr/hubs
y descubrió que no tiene ningún proxy definido.
var proxies = {};
Espera, puedes preguntar, no cambié nada, ¿a dónde fueron?
Bueno, como yo, probablemente tenía tanta prisa por actualizar signalR a 2.2.1
que se olvidó de hacerlo en todos sus proyectos y ahora está usando tanto 2.2.1
como 2.2.0
en diferentes ensamblajes. (Estoy definiendo mis hubs en un ensamblaje diferente al de mi aplicación principal).
Todo lo que tenía que hacer era asegurarme de tener la última versión del paquete nuget en cada proyecto y todo funcionó. Debería funcionar bien después de la reconstrucción. Si no, esto también puede ayudar.
También hágase un favor y lea la https://jquery.com/upgrade-guide/3.0/ si usa mucho jQuery en otros lugares.