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

How can i send the message from client to server using signalr with proxy?

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

完成:-

Signalr 从服务器集线器 class 成功接收即时消息。

待办事项:-

我需要在客户端通过 hubproxy 将 ConnectionId 从客户端发送到服务器集线器 class 并在服务[=38]中通过集线器 class 根据连接 ID 响应请求的客户端=]

我不知道,如何使用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();
        });
},

中心Class:-

[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 启动 Class:-

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

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

        app.MapSignalR(configuration);
    }
}

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

这会更有帮助。

您需要在后端创建一个函数来接收来自客户端的调用。

[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