如何使用带代理的信号器将消息从客户端发送到服务器?

时间:2016-12-16 12:27:48

标签: jquery proxy server client signalr

我是信号员的新手。我在没有自动生成代理的客户端中创建了hubproxy。如何从我的javascript代理向服务器发送消息?

完成: -

Signalr成功从服务器中心类接收即时消息。

TODO: -

我需要通过客户端中的hubproxy将ConnectionId从客户端发送到服务器中心类,并根据服务中的hubId通过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 Class: -

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

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

        app.MapSignalR(configuration);
    }
}

任何人都可以提供解决方案吗?

会更有帮助。

1 个答案:

答案 0 :(得分:0)

您需要在后端创建一个功能以接收来自客户端的呼叫。

[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
   }
}

在客户端,您将发送ReceiveAnAjaxFromClient的ajax