簡易的なチャットシステムを作成したいです。
ログインしたらその人が作成したチャンネルとチャットが表示される、discordに近いものにしたいです。
ユーザー→名前(name)、パス(pass)、チャンネルリスト(Map<String,List>data)
チャンネル→チャンネルの名前、チャット
を持たせればよいと考えたのですが、Channelクラスで作ったリストをUserクラスにどのように渡したらいいかわかりません。また、順序関係的にまずユーザーが作成されてその後チャンネルを追加していく形になるのですが、上記のような構造でも問題はないでしょうか?
つたない文章で申し訳ないです。java初心者なのですが現状できる最大限のことをしたつもりです。迷走してしまって拙い箇所多々あると思いますが、ご教授いただけますと幸いです。
よろしくお願いいたします。
該当のソースコード
java
1//User.java 2@Controller 3public class User {//ユーザを登録する 4 String name;//登録する名前 5 String pass;//登録するパス 6 String loginName;//ログインの時に入力した名前 7 String loginPass;//ログインの時に入力したパス 8 String returnPass;//HashMapから返されたパスを格納するところ 9 Map<String,String> users = new HashMap<>(); 10 Map<String,Map>data = new HashMap<>();//ユーザーとチャンネルマップを結びつけるところ 11 12 User(String name,String pass,Map data){ 13 this.name = name; 14 this.pass = pass; 15 this.data = data; 16 } 17 18 @RequestMapping("/addUser") 19 public String addUser(@RequestParam("name")String name, @RequestParam("pass")String pass){ 20 users.put(name,pass); 21 return "login.html"; 22 } 23 24 25 public String getName(){ 26 return name; 27 } 28 29 public String getPass(String a){//名前を入力してマップからパスを返してもらう 30 return users.get(a); 31 } 32 33 34 public void loginUser(String loginName,String loginPass){//ログイン情報が入る 35 this.loginName = loginName; 36 this.loginPass = loginPass; 37 } 38 39 //ログイン処理 40 41 }
java
1//Channel.java 2public class Channel{ 3String channelName;//チャンネルの名前 4 String checkName;//チャンネルの名前が存在するかMapを調査するため 5 Boolean check;//あるかないかの判定 6 7 8 List<String>chats = new ArrayList();//チャットのリスト 9 Map<String,List>channel = new HashMap<>();//チャンネルのマップ Stringはチャンネル名、Listはチャット →こことUserを関連させたい 10 11 12 13 public Channel(String channelName,List<String>chats){ 14 this.channelName = channelName; 15 this.chats = chats; 16 channel.put(channelName,chats);//チャンネルに名前とチャットを入れる 17 } 18 @RequestMapping(value = "/create") 19 public String addChannel(@RequestParam("channelName") String channelName){//チャンネルを新しく追加する 20 channel.put(channelName,chats); 21 //data.put(User.getName(), (Channel) channel); 22 return "Chat.html"; 23 } 24 25 26@RequestMapping(value = "/serect") 27 public void showing(@RequestParam("checkName") String checkName){//チャンネルが既にあるかどうかを確かめるところ 28 check = channel.containsKey(checkName); 29 if(check = true){ 30 System.out.println("チャンネルを選択"); 31 channel.get(checkName);//チャンネルにあるリストを返す 32 }else if(check = false){ 33 System.out.println("チャンネルを作成"); 34 channel.put(channelName,chats);//チャンネル一覧に入れる 35 36 }else{ 37 System.out.println("エラー"); 38 } 39 40 41 } 42 43 44 public Map getMap(){ 45 return channel; 46 } 47 public String getChannelName(){ 48 return channelName; 49 } 50}
java
1//chat 2@Controller 3public class Chat { 4 private List<String> chats = new ArrayList(); 5 6 String logName; 7 8 9 String chatlog(Model model) { 10 //追加処理 11 } 12 @RequestMapping(value="/addchat") 13 String addChat(@RequestParam("name") String name, 14 @RequestParam("chat") String chat) { 15 16 //追加処理 17 } 18 19 void addChat(String name,String chat, Channel channel) { 20 var nowChat = channel.chats; 21 if (!chat.isBlank()) { 22 nowChat.add(name + ":" + chat); 23 } 24 }
java
1public class ChatApplication { 2 3 public static void main(String[] args) { 4 SpringApplication.run(ChatApplication.class, args); 5 } 6 7}
回答1件
あなたの回答
tips
プレビュー