我正在开发一个Spring项目,其中还包括一个基于netty的socketIO服务器。因此,两个客户端: web客户端和android客户端!他们都在当地工作得很好!但是,当我将在线服务器部署在J弹性中时,只有访问netty-SocketIO服务器的web客户机,但android客户端无法连接到netty-SocketIO服务器。有人可以帮助我将netty-socketIO服务器配置为接受来自端口8888上任何地址的所有请求。
服务器配置
Configuration config = new Configuration();
//config.setHostname("sec.j.layershift.co.uk");
config.setHostname("0.0.0.0");
config.setPort(8888);
final SocketIOServer server = new SocketIOServer(config);
// Listen for client connections
server.addConnectListener(client -> {
System.out.println("************ Client: " + getIpByClient(client) + " Connected ************");
});Web客户端配置
@CrossOrigin("*")
@RestController
public class ClientLocation {
Socket socket =null;
EventBuilder eventBuilder =null;
Gson gs = new Gson();
//................................
socket = IO.socket("http://sec.j.layershift.co.uk:8888");
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
@Override
public void call(Object... args) {
ChatObject co = new ChatObject("ADMIN", "");
String infUser = gs.toJson(co);
System.out.println("\n"+infUser);
JSONObject jb = new JSONObject();
try {
// jb.put("userName", co.getUserName());
// jb.put("message", co.getMessage());
jb = new JSONObject(infUser);
socket.emit("username", jb);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}java或android客户机的配置
private void clientIO(){
try {
socket = IO.socket("http://aug-sec.j.layershift.co.uk:8888");
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {注:java或android的配置与web的配置相同,因为它们都使用Socket.IO v1.0.0。但是只有web客户端才能从J弹性主机中工作,因为它与服务器在同一个文件夹中,而java客户端没有成功,所以一切都在本地主机或局域网中工作。
发布于 2020-08-11 12:45:48
有两种可能的解决方案
访问应用程序。
https://stackoverflow.com/questions/63293815
复制相似问题