aspNet signalr for reactjs
npm install aspnet-signalr-reactjswindow object but imports jQueryShim locally to signalR and exports hubConnection.
npm i -D aspnet-signalr-reactjs
`
#### ES6 Loader
`
import { hubConnection } from 'aspnet-signalr-reactjs';
`
#### HTML
Use just like regular signalR but without $ namespace.
`
const connection = hubConnection('http://[address]:[port]', options);
const hubProxy = connection.createHubProxy('hubNameString');
// set up event listeners i.e. for incoming "message" event
hubProxy.on('message', function(message) {
console.log(message);
});
// connect
connection.start({ jsonp: true })
.done(function(){ console.log('Now connected, connection ID=' + connection.id); })
.fail(function(){ console.log('Could not connect'); });
`
#### Integration with typescript
If you are working with typescript, there is a matching types package called @types/signalr-no-jquery
`
npm install --save aspnet-signalr-reactjs
`
and add at the beginning of TypeScript file:
`
import { connection } from 'aspnet-signalr-reactjs';
`
Then you can use the connection as you would have before without $.
`
const signalrConnection = hubConnection();
const hub = signalrConnection.createHubProxy('hubName');
hub.on('eventName', (): void => {
// handle your event here
});
signalrConnection.start().done(() => {
// do some initialization once you know the connection has been started
// For instance, call a method on the server
hub.invoke('serverMethod', someArgument);
});
`
#### Update 4/01/2017: accessing global settings like through former $.connection
Note: This is an object holding global settings and it's not the same as connection handle returned by hubConnection
`
import { connection } from 'aspnet-signalr-reactjs';
`
#### Update 5/11/2021: enable long polling,add apigee form login token for all xhr requests and set xhr timeout to 2 mins.
Sample:
``