Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit fe802bf

Browse files
committed
FIX DEV SOCKET BUG
1 parent b9a4dd1 commit fe802bf

File tree

7 files changed

+32
-10
lines changed

7 files changed

+32
-10
lines changed

‎README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
- 优化 dev 开发 ssr,通过双启动(ssr-server & client-dev-server)方式,实现前后端 dev 开发无感知,解决方案更加优雅
1313
- SEO 的支持,支持 tkd 以及 head 附加
1414

15+
## v0.3.3
16+
17+
- FIX DEV SOCKET BUG: WebSocket failed: Connection closed before receiving a handshake response `ADD SOCKET PROXY FOR DEV`
18+
1519
## v0.3.1
1620

1721
- fix tdk bug

‎package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vue-cli3-ssr-project",
3-
"version": "0.3.2",
3+
"version": "0.3.3",
44
"private": true,
55
"scripts": {
66
"dev:client": "vue-cli-service serve --mode dev",

‎server/index.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ app.use(cookie());
2727

2828
// 获取render
2929
let renderer;
30-
setupServer(app, (bundle, options) => {
30+
setupServer.setupServer(app, (bundle, options) => {
3131
renderer = createBundleRenderer(
3232
bundle,
3333
Object.assign(options, {
@@ -94,12 +94,15 @@ app.use(async (ctx, next) => {
9494
ctx.body = spaTemplate;
9595
}
9696
});
97-
98-
app
97+
const server = app
9998
.listen(PORT)
10099
.on("listening", () => {
101100
console.log(`server started at localhost:${PORT}`);
102101
})
103102
.on("error", err => {
104103
console.log("---server error---", err);
105104
});
105+
106+
if (setupServer.setupAppServer) {
107+
setupServer.setupAppServer(server);
108+
}

‎server/setup-dev-server.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,24 @@ function serverLog() {
6969
);
7070
console.log();
7171
}
72-
73-
module.exports = async function setupServer(app, createRenderer) {
72+
async function setupServer(app, createRenderer) {
7473
devMiddleWare(app);
7574
renderer = createRenderer;
75+
}
76+
module.exports = {
77+
setupServer,
78+
setupAppServer
7679
};
7780

81+
// FIX DEV SOCKET BUG: WebSocket failed: Connection closed before receiving a handshake response And dev Http response closed while proxying
82+
function setupAppServer(appServer) {
83+
appServer.on("upgrade", function(req, socket, head) {
84+
proxy.proxy.ws(req, socket, head, {
85+
target: "ws://localhost:8081"
86+
});
87+
});
88+
}
89+
7890
function devMiddleWare(app) {
7991
// 接口代理
8092
const proxyTable = config.dev.proxyTable;

‎server/setup-prod-server.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
const bundle = require("../vue-ssr-server-bundle.json");
22
const clientManifest = require("../vue-ssr-client-manifest.json");
3-
4-
module.exports = function setupServer(app, createRenderer) {
3+
function setupServer(app, createRenderer) {
54
createRenderer(bundle, {
65
clientManifest
76
});
7+
}
8+
module.exports = {
9+
setupServer
810
};

‎src/api/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import axios from "axios";
22
const TARGET_SERVER = process.env.VUE_ENV === "server";
3-
const cnodeBaseUrl = TARGET_SERVER ? process.env.config.CNODE_HOST : "/feapi";
3+
// FOR PROXY TEST: const cnodeBaseUrl = TARGET_SERVER ? process.env.config.CNODE_HOST : "/feapi";
4+
const cnodeBaseUrl = process.env.config.CNODE_HOST;
45
export function fetchTopics({ cookies }) {
56
return axios.get(cnodeBaseUrl + "/api/v1/topics", {
67
headers: getCommonHeader({ cookies })

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /