나는 signalR 웹 사이트 .net 코어를 설정했습니다. 내 허브 내 함수이다 : 나는 또한 다음 JS와 검사를하지using signalR.net 코어 클라이언트
public async Task Notify(int id) {
await Clients.All.InvokeAsync("Notified", id);
}
:
let connection = new signalR.HubConnection(myURL);
connection.on('Notified', data => {
console.log(4, data);
});
connection.start();
JS 코드는 잘 작동하는 것 같다 내가 connection.Invoke('Notify')
을하려고 할 때 로그를 참조하십시오.
이제 호출 할 수있는 콘솔 앱이 있습니다. 나는 이것을 두 가지 방법으로 시도하고 있으며 두 가지 해결책을 염두에 두지 않는다. 1. id를 가져 와서 'Notified'를 호출 할 수있는 signalR 웹 사이트 내의 mvc 컨트롤러. 2. 콘솔 앱에서 클라이언트 라이브러리 Microsoft.AspNetCore.SignalR.Client
을 사용하십시오.
방법 I는이 같은 고전적인 asp.net에서 수행 한 1 :
GlobalHost.ConnectionManager.GetHubContext(hubName)
그러나 .NET의 핵심에서이 작업을 수행 할 수있는 방법을 찾을 수 없습니다.
내가 라이브러리를 사용하고 지금까지 시도했다 2 방법 :
var con = new HubConnectionBuilder();
con.WithUrl(myURL);
var connection = con.Build();
connection.InvokeAsync("Notify",args[0]).Wait();
이 내가 JS 코드와 같은 방법으로 연결을 만드는 데 온 가장 가까운 것입니다. 그러나이 코드는 connection.InvokeAsync
을 호출 할 때 널 포인터를 던집니다. connection
개체가 null이 아닙니다. null 인 내부 개체 인 것 같습니다. 스택 추적에 따라 MoveNext() 함수가 내부적으로 호출 될 때 예외가 throw됩니다.
이 GlobalHost를 대체 - 여기에 몇 가지 코드 : https://github.com/aspnet/ SignalR/issues/884 – Pawel
LOL! -1은 뭐니? 누군가에게이 일을하지 않습니까? –
응답이 올바르지 않습니다. 첫 번째가 실제로 가능하고 두 번째가 아마도 연결을 시작하지 않고 보내려고 시도하는 중 둘 다 가능하다면 둘 다 불가능하다고 말합니다. 여전히 SignalR의 버그 (알파 버전에 관한 이야기입니다). 그러나 연결을 시작하지 않으면 예상 할 수없는 어떤 것도 보내질 것입니다. (NullReferenceException에 대한 전체 스택 추적은 문제가있는 곳에서 핀을 가리키는 데 유용하며 코드가 수정되도록 도움을 줄 수 있습니다). – Pawel