赞
踩
要求:需要一台服务器。两台客户端,点击服务器的按钮给客户端发送数据,同时两台机器要做区分,点击按钮发送到对应的主机。
提示:以下是本篇文章正文内容,下面案例可供参考
用node.js做本地后台,在本地的配置json中做服务器和客户端页面区分的配置:show,做两个客户端区分的配置:isOutset,,
客户端配置ip字段:”服务端ip地址“
服务器serverip字段配置两个客户端的IP地址:
代码如下(示例): 服务器将本地ip写入数据的链接中,客户端加载页面时获取该接口数据(在react前端写) >const server = express(); server.get("/api/list", (req, res) => { let host="http://"+ip.address()+":8011" //拿到本机ip let data = DataManager.getData({ key: "data" }) data = JSON.parse(JSON.stringify(data)) res.send({ code: 0, data: data.filter(v=>v.isOutset ===Number(req.query.type)).map(v => { v.images = v.images.map(v => host + v) v.url = host+v.url v.html = v.html.replace( /(src=\"(\S*)\")/gi, (a, b, c) => { return `src="${host+c}"`; } ); return v }) }); });
代码如下(示例):
// 接收服务端地址/api/list接口发送的数据
get('http://' + serverip + ":8011/api/list?type="+type).then(result => {
this.setState({ data:result.data, content: result.data[0] })
}).catch(err => {
this.setData()
})
该处使用的url网络请求的数据。
//服务端向客户端发送数据,用ip对客户端识别,发送到指定的客户端。此ip是serverip中的ip
post("http://"+this.props.ip + ":8011/send", this.props.children[index])
后台识别转发给前台
servers.on("send", (option) => { if(win)win.webContents.send("one", option) }) ··· //客户端识别 ```c // 将当前展示的数据更新为点击的数据 window.electron.on("one", (data) => { let content = this.state.data.find(v => v.id === data.id && v.isOutset === data.isOutset) this.setState({ content: null }) setTimeout(() => { this.setState({ content }); }, 5); }) # 总结 未完待续
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。