Electorn与服务器交互的几种实现方式

本文介绍了Electron应用中与服务器交互的几种方法,包括通过ipcRender和ipcMain的通信,以及前端页面使用Ajax(如Axios)发送请求。特别提醒,开发中需要注意 Electron 渲染进程引用、请求URL完整性和跨域配置问题,以确保打包后的exe文件能正常工作。

#Electorn与服务器交互的几种实现方式

1.由ipcRenderipcMain之间相互通信来实现。

2.由前端页面发送AJAX请求实现。

#你可能要注意的问题

这里有几个问题需要注意,首先是,在渲染页面如何引入electron。其次,在开发环境中,你发送的请求可能是省去了主机名,像这样/user/login的。但是在,后期打包成exe文件,这样的请求会报错。所以你最好使用完整的URL地址,并在服务端配置跨域资源共享http://ip:port/user/login。这是由于,开发的时候,你所用的是http协议,这当然没有问题。但是,当打包完成后用的是file协议。此时你发送的请求大概长这样file:///D://user//login,显然这样子当然是错误的。

在React中你可以这样引入electron:

const electron = window.require('electron');
const { ipcRenderer } = electron;

#ipcRender与ipcMain

在渲染页面中,设置监听事件:

ipcRenderer.send("SEARCH_GET_HOT_SONG");
ipcRenderer.once("SEARCH_SET_HOT_SONG",(res)=>{               

    //do something
});

在主进程中,(main.js)监听LOCAL_ADD_FILE事件,完成操作后广播LOCAL_SET_FILE

ipcMain.on("SEARCH_GET_HOT_SONG",(e)=>{
http.get('http://localhost:8080/api/getHotSong',function(res){
        res.setEncoding('utf8');
        res.on('data',function(chunk){
            e.sender.send("SEARCH_SET_HOT_SONG",chunk)
        });
    });
})

#Ajax请求

在React中,使用Axios可以很好的进行请求操作。你只需要跟着官方的文档一步一步来进行。这里就不在详谈。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值