记录Ocelot + SignalR 多服务端测试
2019-04-29 08:56:57来源:博客园 阅读 ()
前言
分两个项目,一个Gatway,一个SignalR
贴代码
1、Gatway
1、引用Ocelot
2、添加一点点代码
Startup.cs
3、简单配置ocelot
ocelot.json
{
"ReRoutes": [
{
"DownstreamPathTemplate": "/{catchAll}", //下游路径
"DownstreamScheme": "ws", //https //下游协议
"DownstreamHostAndPorts": [ // 下游主机及端口
{
"Host": "127.0.0.1", // 这里是我后面signalr地址
"Port": 53353
},
{
"Host": "127.0.0.1",
"Port": 53354
},
{
"Host": "127.0.0.1",
"Port": 53355
}
],
"UpstreamPathTemplate": "/gateway/{catchAll}", // 上游路径
"UpstreamHttpMethod": [ "GET", "POST", "PUT", "DELETE", "OPTIONS" ], //上游使用的http方法
"LoadBalancerOptions": {
"Type": "RoundRobin" //雨露均沾
//LeastConnection 任务少的接客
//NoLoadBalance 天将降大任于斯人也
}
}
],
"GlobalConfiguration": { //全局配置
"BaseUrl": "http://127.0.0.1:5000"
}
}
2、signalr
1、Startup.cs
2、chat.js
//const connection = new signalR.HubConnectionBuilder()
// .withUrl("http://127.0.0.1:5000/gateway/chatHub") // 这里使用http
// .configureLogging(signalR.LogLevel.Information)
// .build();
const connection = new signalR.HubConnectionBuilder()
.withUrl("ws://127.0.0.1:5000/gateway/chatHub", { // 这里使用WebSockets,不这样写连不上的
skipNegotiation: true,
transport: signalR.HttpTransportType.WebSockets
})
.configureLogging(signalR.LogLevel.Trace)
.build();
connection.on("ReceiveMessage", (user, message) => {
const encodedMsg = user + " says " + message;
const li = document.createElement("li");
li.textContent = encodedMsg;
document.getElementById("messagesList").appendChild(li);
});
document.getElementById("sendButton").addEventListener("click", event => {
const user = document.getElementById("userInput").value;
const message = document.getElementById("messageInput").value;
connection.invoke("SendMessage", user, message).catch(err => console.error(err.toString()));
event.preventDefault();
});
connection.start().catch(err => console.error(err.toString()));
3、Program.cs
测试
1、启动三个Signalr
2、启动Gateway项目
3、启动客户端
新开三个客户端,发现分配到了三个地址。
也就是意味着这三个连这不同的服务端,发信息应该是不通的。这里我们测试一下。
那再开两个客户端试试
不小心发了个54的消息,我们看下之前的54有没有消息。
确实有。
4、测试结束
好了,测试完了。也没看Ocelot源码。
结论就是Ocelot这样连SignalR都是各玩个的。这样不能一起愉快的玩耍的。
所以使用其他的方式实现一下。
原文链接:https://www.cnblogs.com/hanfan/p/10784971.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Asp.net MVC SignalR来做实时Web聊天实例代码 2020-03-29
- ASP.NET MVC中SignalR的简单应用 2020-02-06
- Asp.Net MVC中记录错误日志保存到本地txt文件 2019-05-18
- 记录未预编译文件“*.aspx”,因此不能请求该文件的几种处理 2019-04-21
- asp.net GridView 中增加记录的步骤 2019-01-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash