使用SignalR实现实时通信教程(续)

4.客户端4.1.引入 SignalR客户端库在客户端项目中,引入相应的 SignalR客户端库。对于 .NET平台,可以使用 NuGet安装 SignalR客户端库。对于其他平台,如 JavaScr…

4.客户端
4.1.引入 SignalR客户端库
在客户端项目中,引入相应的 SignalR客户端库。对于 .NET平台,可以使用 NuGet安装 SignalR客户端库。对于其他平台,如 JavaScript、Python 等,可以从官方文档下载相应的客户端库。
4.2.创建客户端连接
创建一个客户端连接,用于与服务器端的 SignalR中心进行通信。以下是一个使用 JavaScript创建客户端连接的示例:

//引入  SignalR库
var  signalR  =  require('signalr');
//创建连接
var  connection  =  new  signalR.HubConnectionBuilder()
.withUrl('https://localhost:5001/chat')  //替换为您的服务器地址
.build();
//连接成功后的回调
connection.on('Connected',  function  ()  {
console.log('Connected  to  the  server');
});
//连接失败后的回调
connection.on('Error',  function  (error)  {
console.error('Error:',  error);
});
//启动连接
connection.start().catch(function  (error)  {
console.error('Connection  start  error:',  error);
});

4.3.发送和接收消息
在客户端连接上,可以实现发送和接收消息的功能。以下是一个使用 JavaScript发送和接收消息的示例:

//发送消息
connection.invoke('SendMessage',  {  text:  'Hello,  SignalR!'  })
.then(function  (result)  {
console.log('Message  sent:',  result);
})
.catch(function  (error)  {
console.error('SendMessage  error:',  error);
});
//接收消息
connection.on('ReceivedMessage',  function  (message)  {
console.log('Message  received:',  message);
});

4.4.断开连接
当不需要实时通信时,可以断开客户端连接。以下是一个使用 JavaScript断开连接的示例:

connection.stop().catch(function  (error)  {
console.error('Connection  stop  error:',  error);
});

5.案例演示(DotNet客户端)
5.1.安装 SignalR客户端库
使用 NuGet安装 SignalR客户端库。
5.2.创建客户端连接
创建一个客户端连接,用于与服务器端的 SignalR中心进行通信。以下是一个使用 C#创建客户端连接的示例:

using  System;
using  Microsoft.AspNetCore.SignalR;
//引入  SignalR库
using  Hub  =  Microsoft.AspNetCore.SignalR.Hub;
//创建连接
HubConnection  hubConnection  =  new  HubConnectionBuilder()
.WithUrl("https://localhost:5001/chat")  //替换为您的服务器地址
.AddJsonProtocol()
.Build();
//连接成功后的回调
hubConnection.On<string,  string>("ReceivedMessage",  (_,  message)  =>
{
Console.WriteLine("Message  received:  "  +  message);
});
//启动连接
hubConnection.Start().Wait();

5.3.发送和接收消息
在客户端连接上,可以实现发送和接收消息的功能。以下是一个使用 C#发送和接收消息的示例:

//发送消息
hubConnection.Invoke("SendMessage",  new  {  text  =  "Hello,  SignalR!"  }).Wait();
//接收消息
hubConnection.On<string,  string>("ReceivedMessage",  (_,  message)  =>
{
Console.WriteLine("Message  received:  "  +  message);
});

5.4.断开连接
当不需要实时通信时,可以断开客户端连接。以下是一个使用 C#断开连接的示例:

hubConnection.Dispose();

通过以上步骤,您可以使用 SignalR实现实时通信功能。根据实际需求,可以进一步扩展和优化实时通信系统,以满足各种场景的需求。

作者: dawei

【声明】:滨州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部