signalr - javascript函数不称为信号器集线器方法
问题描述
<code>
`public void SendChat()
{
var clients = Clients.All;
clients.sendchat();
}`
</code>
这是集线器方法
<code> ` var chat = $.connection.echo;
chat.client.sendchat = function () {
console.log("signalR work!"); };`
</code>
这是客户端方法
<code>
$('#sendMessage').click(function () {
$.ajax({ type: 'POST',
url: '/InboxUI/SendMessage',
data: { friendId: friend, message: text },
success: function (sendDate) {
date = sendDate.toLocaleString('tr-TR', { timeZone:
'UTC' });} }).done(function () {
hub.server.sendChat();});
});
</code>
是服务器方法这个sendChat 方法不叫echoHub 的sendchat 方法!请帮忙。
解决方案
1.阅读教程 根据您的代码,我建议您从以下教程开始:https ://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/hubs-api-guide -服务器
为什么要打ajax调用?您从哪里开始连接?...使用信号器,您应该首先启动与服务器的连接。之后,您可以双向发送消息。
2. 示例代码
根据上一个链接中的以下示例,您可以向前迈出一步:
服务器部分:
public class ContosoChatHub : Hub
{
public void NewContosoChatMessage(string name, string message)
{
Clients.All.addNewMessageToPage(name, message);
}
}
客户端部分:
var contosoChatHubProxy = $.connection.contosoChatHub;
// Define the methods which the client can call on the server. (Must be befor start!)
contosoChatHubProxy.client.addContosoChatMessageToPage = function (name, message) {
console.log(userName + ' ' + message);
};
// Important you must start the connection
$.connection.hub.start()
.done(function(){
console.log('Now connected, connection ID=' + $.connection.hub.id);
})
.fail(function(){ console.log('Could not Connect!'); });
// You can call also method from client on server like (Connection must be established first!):
contosoChatHubProxy.server.newContosoChatMessage({ UserName: userName, Message: message}).done(function () {
console.log ('Invocation of NewContosoChatMessage succeeded');
}).fail(function (error) {
console.log('Invocation of NewContosoChatMessage failed. Error: ' + error);
});
推荐阅读
- delphi - 如何在 Delphi 中使用通配符搜索注册表
- c++ - 在流 c++ 的文本之前有一个额外的换行符
- reactjs - 使用recharts的多系列数据条形图问题
- bootstrap-4 - 引导选择 optgroup 映像
- amazon-web-services - 使用 sha1 进行 AWS S3 签名实际上安全吗?
- amazon-web-services - 我应该选择什么 Elastic Beanstalk 环境?
- c - 如何利用中断通过 SPI 外设进行数据传输
- typescript - Mocha typescript 测试方法正在运行,但 nyc 没有覆盖这些代码行
- c++ - OpenCV 细分一致的 Rect2f 到 Rect2i 舍入
- microsoft-teams - Debian:微软团队在屏幕共享时重启/粉碎