问题
According to all documentation that i have come across i should be able to call $.connection.hub.id AFTER my connection has been started. this is my code:
var handshake = $.connection.handshakeHub;
$.connection.hub.start().done(function () {
console.dir($.connection.hub);
console.log('connection started with id: ' + $.connection.hub.id);
self.parentConnectionId = document.cookie.replace(/(?:(?:^|.*;\s*)connection\s*\=\s*([^;]*).*$)|^.*$/, "$1");
handshake.server.connect(self.parentConnectionId, $.connection.hub.id);
});
I am successfully connecting and the handshake proxy connect call hits the server so it is not like the connection is bombing. I have also inspected the property in the dev tools after the connection and the ID is still undefined.
I have tried this with version 2.1 and 2.2 of Signalr and no luck. Anyone have any experience with this? This is killin me.
回答1:
For anyone else that may have been googling/searching this (like me), ensure you've started your hub and it's connected.
$.connection.hub.start().done(function () {
console.log("id : %o", $.connection.hub.id);
});
回答2:
I am an idiot. I had the proxy script tag included in two different spots in my solution. Removing one fixed the issue.
来源:https://stackoverflow.com/questions/27989445/i-am-getting-an-undefined-connection-id-in-signalr-javascript-client