|
|
@@ -2,35 +2,93 @@ |
|
|
|
* 模拟客户端back server |
|
|
|
* 目前还不知道back的API及具体实现,暂时先抑制代码报错 |
|
|
|
*/ |
|
|
|
import io from 'socket.io-client'; |
|
|
|
|
|
|
|
export const isClient = process.env.IS_CLIENT; |
|
|
|
|
|
|
|
let socket; |
|
|
|
const noop = () => {}; |
|
|
|
|
|
|
|
const io = (path) => { |
|
|
|
return new WebSocket(path); |
|
|
|
} |
|
|
|
|
|
|
|
console.log(global.electron); |
|
|
|
|
|
|
|
const safeCall = f => isClient ? f : noop; |
|
|
|
const safeSocket = f => (...args) => socket && f(...args); |
|
|
|
|
|
|
|
const system = { |
|
|
|
isClient, |
|
|
|
init: () => { |
|
|
|
|
|
|
|
}, |
|
|
|
test: safeCall(() => { |
|
|
|
console.log('客户端 electron API 检测:', global.electron); |
|
|
|
system.initalSocket(); |
|
|
|
}), |
|
|
|
initalSocket: () => { |
|
|
|
socket = io('http://10.240.32.243:3000'); |
|
|
|
|
|
|
|
initialSocket: () => { |
|
|
|
socket = io('ws://10.240.5.17:8000'); |
|
|
|
// socket = io('ws://127.0.0.1:3000'); |
|
|
|
debugger; |
|
|
|
socket.on('connect', () => { console.log('本地socket服务连接成功') }); |
|
|
|
}, |
|
|
|
/** |
|
|
|
* 系统打开只当文件 |
|
|
|
* todo |
|
|
|
* 通知登录 |
|
|
|
*/ |
|
|
|
login: () => { |
|
|
|
|
|
|
|
}, |
|
|
|
/** |
|
|
|
* todo |
|
|
|
* 通知登出 |
|
|
|
*/ |
|
|
|
logout: () => { |
|
|
|
|
|
|
|
}, |
|
|
|
/** |
|
|
|
* todo |
|
|
|
* 通知系统进入当前的工作空间 |
|
|
|
*/ |
|
|
|
entryProject: () => { |
|
|
|
|
|
|
|
}, |
|
|
|
/** |
|
|
|
* 下载文件到工作空间 |
|
|
|
*/ |
|
|
|
downloadFile: () => { |
|
|
|
|
|
|
|
}, |
|
|
|
/** |
|
|
|
* 上传文件到工作空间 |
|
|
|
* issue: |
|
|
|
* + 浏览器的文件上传不会带有本地的文件路径,本地服务是否可以唤起一个选择文件的弹窗? |
|
|
|
*/ |
|
|
|
uploadFile: safeCall(() => { |
|
|
|
const { ipcRender } = global.electron; |
|
|
|
ipcRender.send('project-upload-file', { value: 'custom-var-test' }); |
|
|
|
}), |
|
|
|
/** |
|
|
|
* 系统打开文件 |
|
|
|
*/ |
|
|
|
openFile: safeCall((filePath) => { |
|
|
|
const { shell } = global.electron; |
|
|
|
shell.openPath(filePath); |
|
|
|
}), |
|
|
|
// todo |
|
|
|
/** |
|
|
|
* 初始化ipcRender |
|
|
|
*/ |
|
|
|
initialClient: safeCall(() => { |
|
|
|
const { ipcRender } = global.electron; |
|
|
|
// 项目中的文件上传事件监听 |
|
|
|
ipcRender.on('project-selected-upload-file', (event, path) => { |
|
|
|
console.log('ipcRender project-selected-upload-file:', event, path); |
|
|
|
debugger; |
|
|
|
// todo 取出文件的本地路径, 及当前项目相关的数据通过socket,发送给本机服务 |
|
|
|
// |
|
|
|
}); |
|
|
|
}), |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
export default system; |