Files
squirrelVsis/src/localClient.ts
睿 安 8f5ddd7dec 添加本地服务端口配置项,允许用户自定义发送JSON数据的端口号
- 在localClient.ts中实现从配置读取端口号,默认值为26000
- 在package.json中添加squirrel.localServicePort配置项
- 用户现在可以通过VS Code设置自定义本地C++服务端口

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-18 16:10:04 +08:00

69 lines
2.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import * as http from 'http';
import * as vscode from 'vscode';
/**
* 构建JSON数据
* @param filePath 文件路径
* @param content 文件内容
* @returns JSON字符串
*/
function buildJsonData(filePath: string, content: string): string {
const data: { [key: string]: string } = {};
data[filePath] = content;
return JSON.stringify(data);
}
/**
* 发送文件内容到本地C++服务
* @param filePath 文件路径
* @param content 文件内容
* @returns Promise<boolean> 是否发送成功
*/
export async function sendFileToCppService(filePath: string, content: string): Promise<boolean> {
// 从配置中获取端口号默认为26000
const config = vscode.workspace.getConfiguration('squirrel');
const localServicePort = config.get<number>('localServicePort', 26000);
return new Promise((resolve) => {
const jsonData = buildJsonData(filePath, content);
const postData = jsonData;
const options: http.RequestOptions = {
hostname: '127.0.0.1',
port: localServicePort,
path: '/send_data',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(postData)
}
};
const req = http.request(options, (res) => {
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
console.log(`[Squirrel] 已发送文件到C++服务: ${filePath}, 状态码: ${res.statusCode}`);
if (res.statusCode === 200) {
resolve(true);
} else {
console.error(`[Squirrel] 发送失败,状态码: ${res.statusCode}, 响应: ${data}`);
resolve(false);
}
});
});
req.on('error', (error) => {
console.error(`[Squirrel] 发送文件到C++服务失败: ${error.message}`);
resolve(false);
});
req.write(postData);
req.end();
});
}