Files
hsa/code-server-like/static/js/code-like-extension.js
2025-09-21 15:33:00 +08:00

64 lines
1.6 KiB
JavaScript

let vs_socket = null;
let debounceTimeout;
// 缓冲器函数(防抖)
function debounceSendToServer(data, delay) {
if (debounceTimeout) {
clearTimeout(debounceTimeout);
}
debounceTimeout = setTimeout(() => {
sendToServer(data);
}, delay);
}
function sendToServer(data){
try {
if (!vs_socket) {
return;
}
console.log('Sending data to Flask server:', data);
vs_socket.emit('message', data)
} catch (error) {
console.error('Error sending data to Flask server:', error);
}
}
function ChangeActiveTextEditor(path){ //打开文件
console.log(`Current open file: ${path}`);
sendToServer({
type: 'activeFile',
filePath: path,
config: code_like_config,
});
}
function ChangeWorkspacefileTree(fileTree) {
if (fileTree){
sendToServer({
type: 'workspaceFolders',
fileTree: fileTree,
config: code_like_config,
});
}
}
// vscode.window.showInformationMessage('Connecting to server...');
vs_socket = io('wss://hsamooc.com/vscode');
vs_socket.on('connect', () => {
// vscode.window.showInformationMessage('Connected to server');
console.log('Connected to server');
vs_socket.emit('login', { config: code_like_config });
});
vs_socket.on('disconnect', () => {
// vscode.window.showInformationMessage('Disconnected from server');
console.log('Disconnected from server');
});
vs_socket.on('terminal',(data)=>{
// vscode.window.showInformationMessage('Terminal command received'+data);
socket.emit("pty_input", {"input": data.data+'\r\n'}, function(response) {
});
})