作者:955单车小宏 | 来源:互联网 | 2023-02-01 12:03
IhaveamultiplayergameandIwanttokeephistoryofconnectedplayerstounderstandwhenshould
I have a multi player game and I want to keep history of connected players to understand when should game start . I used HttpSession But it can't solve my problem. also I created a static ArrayList of players in webservices but it couldn't solve my poblem . :( Any other idea ?
我有一个多人游戏,我想保持连接玩家的历史,以了解游戏什么时候开始。我使用了HttpSession但它无法解决我的问题。我也在webservices中创建了一个静态的ArrayList,但它无法解决我的问题。 :(任何其他想法?
@Resource
private WebServiceContext wsContext;
@WebMethod
public PlayerModel connect(String PlayerName) {
PlayerModel playerModel = null;
Players players = new Players() ;
ArrayList playerList = players.getPlayers();
if (playerList.isEmpty()) {
System.out.println("from service :No payer yet");
boardModel = new BoardModel(6, 7);
session.setAttribute("boardModel", boardModel);
boardModel.setPlayer1(PlayerName);
playerModel = new PlayerModel(1, PlayerName, boardModel);
playerList.add(playerModel) ;
} else if (playerList.size() == 1) {
boardModel.setPlayer2(PlayerName);
playerModel = new PlayerModel(2, PlayerName, boardModel);
playerList.add(playerModel) ;
}
return playerModel;
}
another approach
@Resource
private WebServiceContext wsContext;
BoardModel boardModel;
HttpSession session;
@WebMethod
public PlayerModel connect(String PlayerName) {
MessageContext mc = wsContext.getMessageContext();
session = ((HttpServletRequest) mc.get(MessageContext.SERVLET_REQUEST)).getSession();
if (session == null) {
System.out.println("from service :No payer yet");
boardModel = new BoardModel(6, 7);
session.setAttribute("boardModel", boardModel);
boardModel.setPlayer1(PlayerName);
playerModel = new PlayerModel(1, PlayerName, boardModel);
session.setAttribute("1", playerModel);
} else if (session.getAttribute("1" != null) {
boardModel.setPlayer2(PlayerName);
playerModel = new PlayerModel(2, PlayerName, boardModel);
session.setAttribute("2", playerModel);
}
System.out.println("from service : player" + PlayerName);
return playerModel;
}
1 个解决方案