【发布时间】:2017-03-30 06:23:18
【问题描述】:
我正在尝试对我的 Akka 程序执行端口转发,在该程序中,客户端可以通过 Internet 与服务器进行通信。我已经配置了我的路由器,并且端口转发机制正在工作,但 Akka 似乎有问题。
问题是客户端无法从服务器获取远程actor。在服务器端不断出现接收者不同的错误。客户端通过"akka.tcp://RemoteSystem@67.18.67.18:5150/user/remote" 获取远程参与者,例如67.18.67.18 是我的全球IP 地址。然后远程参与者在路径"akka.tcp://RemoteSystem@192.168.0.106:5150/user/remote" 上进行远程处理,其中192.168.0.106 是我的服务器本地IP。我知道客户端必须使用相同的路径访问远程参与者,但尽管我定义了public-localname,服务器仍然没有将全局 IP 转换为本地 IP 或允许通过全局 IP 访问。有什么解决方法吗?下面是服务器的application.conf。
akka {
loglevel = "INFO"
actor {
provider = "akka.remote.RemoteActorRefProvider"
}
remote {
enabled-transports = ["akka.remote.netty.tcp"]
netty.tcp {
hostname = ""
port = 5150
public-hostname = "67.18.67.18"
}
log-sent-messages = on
log-received-messages = on
}
}
【问题讨论】:
标签: scala tcp akka remoting portforwarding