這個項目工作,客戶端是phantomjs與CORS:跨域到phantomjs向右SignalR V1.1.4
webpage = require "webpage"
websocket = webpage.create()
serverUrl = "http://www.domain.com"
websocket.injectJs './jquery-2.1.0.min.js'
websocket.injectJs './jquery.signalR-1.1.4.min.js'
websocket.includeJs serverUrl + '/signalr/hubs', ->
websocket.evaluate (serverUrl)->
$.support.cors = false
$.connection.hub.url = serverUrl + '/signalr'
taskHub = $.connection.taskHub
$.connection.hub.start().done ->
taskHub.server.registerAgent "xxx"
#……
taskHub.client.castTesk = (task) ->
#……
, serverUrl
,直到升級SignalR到V2.0.2。 我刪除RouteTable.Routes.MapHubs(新HubConfiguration(){EnableCrossDomain =真})上的Application_Start(),並添加Startup.cs:
[assembly: OwinStartup(typeof(SpiderMan.Startup))]
namespace ProjectNamespace {
public partial class Startup {
public void Configuration(IAppBuilder app) {
app.Map("/signalr", map => {
map.UseCors(CorsOptions.AllowAll);
var hubConfiguration = new HubConfiguration {
EnableJSONP = true
};
map.RunSignalR(hubConfiguration);
});
}
}
}
然後$ .connection.hub.start()工作的權利始終,但是taskHub.client.castTesk()不能被觸發,沒有任何錯誤消息。
更新: V1.2.1就是工作也未能像V2.0.2。 而且,服務器上的任何版本的Microsoft.AspNet.SignalR軟件包都不能影響此問題。客戶端使用jquery.signalR-1.1.4.min.js正常工作,對於任何服務器signalR版本,總是會失敗,並始終使用jquery.signalR-1.2.1.min.js。
嘗試啓用客戶端日誌記錄:http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-javascript-client#logging這應該給你更多的診斷信息你可以添加到你的問題。 – halter73
感謝您的建議。我啓用日誌,最後一行信息是「調用taskhub.RegisterAgent」,沒有錯誤沒有警告 – zicjin