0
我目前正在嘗試使用netty創建聊天服務。我從一些源代碼中提取了我的參考,並且我想實現一個簡單的GUI,其中在服務器端,一個按鈕「發送「必須被點擊,以便消息可以被髮送回客戶端。 我基本上試圖在我的messageReceived channelhandler中實現一個ActionListener,但我遇到了一些問題,因爲我無法使用客戶端的通道寫回我的消息,因爲非最終變量無法引用的問題它是在一個不同的方法定義的內部類。我希望有一些建議來克服這個問題。請大家給予您的協助!如何在netty聊天服務器端正確實現GUI
ServerHandler的messageReceived代碼:
@Override
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e)throws Exception {
System.out.println("Received message from client: " + e.getMessage());
String msgclient = (String) e.getMessage();
ta.append("[From Client]" + msgclient + "\n");
Channel c = e.getChannel();//can't declare it as final also,make no sense
bt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent a){
if(a.getSource()==bt){
String serversentence=tf.getText();
ta.append("[Server]" + serversentence + "\n");
c.write(serversentence + "\n\r");
if (serversentence.toLowerCase().equals("shutdown"))
shutdown();
tf.setText(null);
}
}
});
}