我如何使用带代理的信号器将消息从客户端发送到服务器?
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
我是信号器的新手。我在没有自动生成代理的客户端中创建了一个 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