【发布时间】:2020-01-25 01:05:20
【问题描述】:
我在 3.1.2 版(2019 年 9 月 19 日)中使用 Create React App 创建了我的 React 应用。我试图为 Web Socket 请求配置代理,但是当我使用代理时,似乎没有建立连接。我使用THIS 示例来设置我的东西。该服务器是示例中的 Asp.Net Core,只要将地址连接到初始化中,它就可以工作。这个 sn-p 有效:
const hubConnection = new HubConnectionBuilder()
.withUrl("https://localhost:44392/chatHub")
.build();
这不是:
const hubConnection = new HubConnectionBuilder()
.withUrl("chatHub")
.build();
有了这个:
{
"proxy": "https://localhost:44392/",
"name": "my-app",
"version": "0.1.0",
"private": true,
"dependencies": {
"@microsoft/signalr": "^3.0.0",
"react": "^16.9.0",
"react-dom": "^16.9.0",
"react-scripts": "3.1.2"
},
(...)
我看到一个建议 HERE 我可能会在代理设置中使用一个对象,但是当我尝试时我收到一个错误,即代理地址必须是单个字符串,而不是一个对象:
proxy: {
'^/api': {
target: '<url>',
ws: true,
changeOrigin: true
},
'^/foo': {
target: '<other_url>'
}
【问题讨论】:
-
尝试在前面加一个斜线,比如
.withUrl("/chatHub") -
没有帮助。连接在挂起状态下被阻止。如果您尝试发送消息,则会收到“错误:如果连接未处于“已连接”状态,则无法发送数据。”。
-
你解决了这个问题吗?
-
@Alexandre - neeko 提供的答案对我来说没问题
标签: reactjs webpack websocket signalr create-react-app