2016-12-16 3 views
0

Я новичок в signalr. Я создал hubproxy в клиенте без автогенерированного прокси. как я могу отправлять сообщения с моего прокси-сервера javascript на сервер?Как отправить сообщение от клиента на сервер с помощью signalr с прокси?

Сделано: -

Signalr получать мгновенные сообщения от сервера класса хаба успешно.

ToDo: -

Мне нужно отправить ConnectionID от клиента к классу сервера концентратора через hubproxy в клиенте и отвечать запрошенному клиент на основе ConnectionID через класс хаба в службе

Я дон Не знаете, как отправлять данные с клиента на сервер с помощью hubproxy?

Javascript Клиент: -

_signalr:function(){ 
     var connection = $.hubConnection(); 
     var proxy=this; 
     var service = $.connection.serviceHub; 
     var ServiceHubProxy = connection.createHubProxy('serviceHub'); 
     ServiceHubProxy.on('addMessage', function signalr(widgetName,info) { 
      if (widgetName == "Layout") 
       proxy._renderDashboardLayout(null, info); 
      else 
       proxy._renderControl(null,widgetName, info); 

     }); 
     connection.url = 'http://localhost:58087/signalr'; 
     connection.start({ jsonp: true }).done(function() { 
      var Id = connection.id; 
      console.log(Id); 
      console.log("Connected"); 
      proxy.loadLayout(); 
     }); 
}, 

HubClass: -

[HubName("serviceHub")] 
public class ServiceHub : Hub 
{ 
    public void Send(string widgetName,object info) 
    { 
    var service = GlobalHost.ConnectionManager.GetHubContext<ServiceHub>(); 
    service.Clients.All.addMessage(widgetName,info); 
    } 
} 

Owin Startup Класс: -

public class Startup 
{ 
    public void Configuration(IAppBuilder app) 
    { 

     var configuration = new HubConfiguration(); 
     configuration.EnableJSONP = true; 

     app.MapSignalR(configuration); 
    } 
} 

Может кто-нибудь, обеспечить решение?

Это будет более полезно.

ответ

0

Вам необходимо создать функцию в Back End для получения вызова с клиентской стороны.

[HubName("serviceHub")] 
public class ServiceHub : Hub 
{ 
    //send to client 
    public void Send(string widgetName,object info) 
    { 
     var service = GlobalHost.ConnectionManager.GetHubContext<ServiceHub>(); 
     service.Clients.All.addMessage(widgetName,info); 
    } 
    //receive from client 
    public void ReceiveAnAjaxFromClient(string data) 
    { 
     //do something 
    } 
} 

На стороне клиента вы будете отправлять Ajax для ReceiveAnAjaxFromClient

+0

спасибо Marlon.i есть одно сомнение! почему мы не сможем отправлять данные с клиента на сервер с прокси? Использование ajax возможно, я знал это. Но с signalr javascript proxy? – creator