调用SignalR中的服务器和客户端方法
Calling server and client method in SignalR
以下代码采用ASP.Net SignalR Hub技术。这些代码未按预期工作。当我点击Hello Butting时,它运行良好,但当我点击UserList时,什么都没有发生。我已经发出警报,发现服务器方法正在调用,但之后什么也没发生。
JavaScript
$(function () {
// Declare a proxy to reference the hub.
var chat = $.connection.chatHub;
chat.client.OnlineFriends = function (userLists) {
alert(userLists);
};
chat.client.Hello = function (message) {
alert(message);
};
// Start the connection.
$.connection.hub.start().done(function () {
$('#btnGetUser').click(function () {
chat.server.Friends();
});
$('#btnHello').click(function () {
chat.server.test("message to server from client");
//
});
});
});
和C#代码
public class ChatHub : Hub
{
public void Test(string str)
{
Clients.Caller.Hello(str + " | Message received at server reply from server.");
}
public void Friends()
{
Clients.Caller.OnlineFriends("myid");
}
}
和HTML
<div>
<input type="button" id="btnHello" value="Hello" />
<input type="button" id="btnGetUser" value="UserList" />
</div>
请帮忙找出问题出在哪里。
你能试着更改行吗
chat.server.Friends();
至:
chat.server.friends();
我猜生成的javascript具有关于命名的java约定。这是我能从这两种方法中看到的唯一区别。
正如@scheien所提到的,您需要使用小写首字母来调用该方法。或者,您可以指定集线器方法名称,如这里详细介绍的那样。
[HubMethodName("MyNewMethodName")]
public void Friends()
然后使用新名称调用服务器功能
chat.server.MyNewMethodName();
chat.client.onlineFriends = function (userLists) {
alert(userLists);
};
但是。。。。。。集线器上不存在userLists
:
Clients.CalleronlineFriends("myid");
这是一回事,另一件让我头疼的事是javascript部分没有以大写字母开头
因此,您还必须将Friends
、Hello
、OnlineFriends
更改为friends
、hello
、onlineFriends
相关文章:
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 通过ajax从客户端调用C#方法来执行C#方法
- Dynamics 2016内部部署Crm客户端脚本.选项集控件类型缺少方法
- 如何在从客户端接收数据时从本机方法触发javascript函数?
- 客户端渲染和跳过服务器渲染方法
- 使用javascript将控制器方法移动到客户端
- 当对象从服务器发送到客户端时,JS原型方法消失了
- 在客户端 Javascript 方法之后运行服务器方法
- 在单页应用程序上进行客户端路由的正确方法是什么
- Django设计模式-在加载时填充客户端JavaScript变量的方法
- Meteor 方法返回客户端和服务器上的不同对象
- 调用SignalR中的服务器和客户端方法
- 只有在angular js中手动重新加载页面时,signaler-js客户端方法才会调用
- 从客户端的对象数组中获取最新日期的优雅方法是什么
- Asp.net MVC,通过onclickJS事件从客户端调用C#方法
- SignalR 不从服务器调用客户端方法
- 如何使用socket.io从服务器调用客户端方法
- 无法在OnDisconnected上调用客户端方法
- 服务器端和客户端方法
- 如果没有客户端方法,Hub OnConnected未被调用