如何使用 Javascript 客户端调用具有枚举参数的 SignalR Hub 方法?
How to call SignalR Hub Method that has Enum parameters with a Javascript Client?
使用 C# signalR 客户端非常简单,而且有效;但我坚持使用 JS 客户端。
public async Task MyHubMethod(string userName, CityEnum city, FruitEnum fruit) {
//etc.
}
public enum CityEnum
{
LONDON,
LISBON,
RIO,
SYDNEY
}
public enum FruitEnum
{
APPLES,
BANANAS,
ORANGES
}
//C# Client, YAY it works !
string userName = "mindi-mink";
CityEnum city = CityEnum.LONDON;
FruitEnum fruit = FruitEnum.APPLES;
await _connection.InvokeAsync("MyHubMethod", userName, city, fruit);
//Javascript Client:
???
除了更改服务器方法以获取字符串参数并将它们转换回 Enums 服务器端外,不知道该怎么做;
如何从 Javascript signalR 客户端执行此操作? (不更改服务器方法签名)。
枚举值是整数,传递整数应该有效吗?
是的,刚刚测试过,确实有效!
定义对象以匹配您的服务器端枚举
const CityEnum = {
LONDON : 101,
LISBON : 102,
RIO : 103,
SYDNEY : 104,
}
const FruitEnum = {
APPLES : 0,
BANANAS : 1,
ORANGES : 2,
}
//JS-Client:
const userName = "mind-mink";
const city = CityEnum.LONDON;
const fruit = FruitEnum.APPLES;
await _hubCnn.invoke("MyHubMethod", userName, city, fruit);
使用 C# signalR 客户端非常简单,而且有效;但我坚持使用 JS 客户端。
public async Task MyHubMethod(string userName, CityEnum city, FruitEnum fruit) {
//etc.
}
public enum CityEnum
{
LONDON,
LISBON,
RIO,
SYDNEY
}
public enum FruitEnum
{
APPLES,
BANANAS,
ORANGES
}
//C# Client, YAY it works !
string userName = "mindi-mink";
CityEnum city = CityEnum.LONDON;
FruitEnum fruit = FruitEnum.APPLES;
await _connection.InvokeAsync("MyHubMethod", userName, city, fruit);
//Javascript Client:
???
除了更改服务器方法以获取字符串参数并将它们转换回 Enums 服务器端外,不知道该怎么做;
如何从 Javascript signalR 客户端执行此操作? (不更改服务器方法签名)。
枚举值是整数,传递整数应该有效吗?
是的,刚刚测试过,确实有效!
定义对象以匹配您的服务器端枚举
const CityEnum = {
LONDON : 101,
LISBON : 102,
RIO : 103,
SYDNEY : 104,
}
const FruitEnum = {
APPLES : 0,
BANANAS : 1,
ORANGES : 2,
}
//JS-Client:
const userName = "mind-mink";
const city = CityEnum.LONDON;
const fruit = FruitEnum.APPLES;
await _hubCnn.invoke("MyHubMethod", userName, city, fruit);