我试图用我的Raspberry Pi做一些家庭自动化。
现在我已经设置了一个Node + Express API服务器(地址Sub CollectionTest()
Dim coll As New Collection
Dim rng1 As Range
Dim rng2 As Range
'Set rng1 = someNamedRange 'gives an error!
Set rng2 = Range("someNamedRange")
'here you can see, how to add named ranges to a collection - you have two valid ways, through a variables or directly
coll.Add someNamedRange
coll.Add rng2
coll.Add Range("someNamedRange")
'MsgBox coll(1).Address 'would give an error: object required
'both lines below work as expected
MsgBox coll(2).Address
MsgBox coll(3).Address
End Sub
,本地文件夹http://192.168.100.100:3000
),用于将信号发送到空调并从中获取信息。
除此之外,我已经使用Vuejs构建了一个webapp来管理AC,并设置一个Nginx服务器来访问webapp(地址:~/api
,本地文件夹http://192.168.100.100
)。
一切都在本地网络上完美运行,但我希望远程访问所有内容。所以我转发了端口~/controller/dist
,我可以通过互联网访问网络应用,但它无法正常工作,因为它无法访问API服务器。
是否正常,我还要转发端口80
,还是有办法让应用程序在本地主机上查找API?
答案 0 :(得分:0)
你可以转发端口3000,它应该可以工作。
另一种选择是使用ngrok。它允许您直接打开隧道(无论您的防火墙设置如何)到您的API。您只需注册一个免费帐户,就可以无限期地运行一个隧道。唯一的缺点是你需要使用他们的shortUrl(比如https://asdasd12.ngrok.io
,每次你重新启动时都会改变。你可以付钱去除它,并获得一个永久的子域名(如https://myniceapi.ngrok.io
)
答案 1 :(得分:0)
两者都应该在本地网络中工作,因为每个人都知道谁是谁。如果通信是服务器到服务器,两者都应该工作,因为它是相同的方案。但是如果客户端执行Ajax与服务器通信,你也应该转发端口3000。因为请求超出了本地环境(如果您不在网络中)。
服务器到服务器:localhost - >本地主机
客户端(浏览器)到服务器:互联网 - >本地主机
如果服务器(本地)向客户端(远程)执行请求,则可以避免转发。