支持http(s)、signalr、websocket rewrite 的URL转发规则分享
熟悉SignalR的开发者都知道,SignalR为Web应用的前后端交互提供了强大易用的支持,而且提供了可靠的通信能力,它兼容大部分开发语言,包括.NET、Java、Python、PHP、 等等。
SignalR支持WebSocket(套字节)、Polling(轮询)、Keepalive(长连接) 三种通信机制,它可以根据平台或浏览器的兼容情况,自动选择通信模式,其中WebSocket是最为推荐也是效率最好的模式。
当我们配置URL转发规则时,如果没有支持WebSocket的转发,SignalR就会自动选择其它通信模式,导致效率和性能下降, 对于直接支持WebSocket通信的项目,会直接中断连接。
针对http 和 https的协议转发规则很轻松的可以在各种技术网站找到,但是针对WebSocket 的规则就比较少了,所以分享下支持WebSocket的URL Rewrite规则。
以下规则,适用于IIS网站部署
<configuration>
<location>
<system.webServer>
<rewrite>
<rules>
<rule name="rewrite" stopProcessing="true">
<match url="^(.*)" />
<conditions>
<add input="{CACHE_URL}" pattern="(.*)://" />
</conditions>
<action type="Rewrite" url="{C:1}://521.org.cn/{R:1}" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</location>
</configuration>
匹配规则可以根据需求自行修改。
评论