Javascript 更改括号外壳名称会导致WebSocket连接错误

Javascript 更改括号外壳名称会导致WebSocket连接错误,javascript,node.js,adobe-brackets,brackets-shell,Javascript,Node.js,Adobe Brackets,Brackets Shell,我正在尝试使用括号shell构建一个应用程序。更具体地说,我试图为一个项目构建一个自定义代码编辑器,所以我不是从头开始,而是修改括号 到目前为止,我已经能够解决所有问题,直到我到了括号外壳。我希望能够在括号旁边安装我的应用程序,所以它必须有不同的名称和不同的首选项。我接着介绍了如何重命名一个Shell应用程序。以下是我更改的文件: GrunFile.js–更改生成名称 appshell/config.h–更改windows和osx的应用程序名称 appshell_config.gypi–同时

我正在尝试使用括号shell构建一个应用程序。更具体地说,我试图为一个项目构建一个自定义代码编辑器,所以我不是从头开始,而是修改括号

到目前为止,我已经能够解决所有问题,直到我到了括号外壳。我希望能够在括号旁边安装我的应用程序,所以它必须有不同的名称和不同的首选项。我接着介绍了如何重命名一个Shell应用程序。以下是我更改的文件:

GrunFile.js–更改生成名称

appshell/config.h–更改windows和osx的应用程序名称

appshell_config.gypi–同时更改应用程序名称

运行
grunt安装程序
grunt build mac
后,我的应用程序启动,似乎工作正常。我可以在我的应用程序中更改首选项,而不会影响原始应用程序(因为它们具有不同的
应用程序支持
目录)。我没有注意到任何问题,直到我打开控制台,在那里我看到了以下错误:

WebSocket connection to 'ws://localhost:50642/' failed: HTTP Authentication failed;
no valid credentials available NodeConnection.js:84
所以我试着在所有三个文件中将我的应用程序名称改回括号,问题就消失了。我猜在应用程序代码的某个地方,它仍在尝试连接到名为方括号的原始应用程序。我猜我需要更改第四个配置文件,但我对括号不够熟悉,无法找到该文件。没有连接,
Live Preview
eslint
无法工作

我曾尝试插入
console.trace
,尝试对括号Shell和括号源代码本身之间的节点连接进行反向工程,但没有多大帮助。有人知道如何在运行时不中断节点连接的情况下更改括号Sheel的名称吗

我还尝试在端口50642上搜索进程,服务器正在运行。
您需要修改节点核心

括号Shell是硬连接的,可以拒绝任何不是来自名为
括号
的应用程序的调用。打开文件
方括号/appshell/node-core/Server.js
。在回答这个问题时,您需要更改第205行。以防万一,将来情况会有所不同,你可以找到我正在考虑的提交

以下是导致问题的原因:

wsServer = new WebSocket.Server({
    server: httpServer,
    verifyClient : function (info, callback) {
        // Accept connections originated from local system only
        // Also do a loose check on user-agent to accept connection only from Brackets CEF shell
        if (info.origin === "file://" && info.req.headers["user-agent"].indexOf(" Brackets") !== -1) {
            callback(true);
        } else {
            // Reject the connection
            callback(false);
        }
    }
});
问题是
info.req.headers[“用户代理”].indexOf(“括号”)
。正如您所看到的,它拒绝任何不是来自方括号的连接。将括号重命名为应用程序的名称

确保名称格式正确

如果您的应用程序中有空格(例如
新括号
),则在检查
用户代理
时,您会删除空格。在本例中,您将检查
用户代理是否如下所示:
info.req.headers[“user agent”].indexOf(“newbrakets”)

祝贺你!您已经建立了新的支架。