Spark之发送消息与接收消息事件流程详解
1、发送消息:
因为发送即时消息是键盘Enter键触发,所以可以通过搜索键盘事件和Enter来找
<1>搜索“KeyEvent”和“Enter”——>在ChatRoom.java找到
private void checkForEnter(KeyEvent e) {...}
<2>在这个方法里面有sendMessage(); //这就是发送即时消息代码
<3>进一步搜索“sendMessage()”方法——>找到ChatRoomImpl.java
<4>在其中有:public void sendMessage(){
...
sendMessage(text);}
public void sendMessage(String text) {
...
sendMessage(message);}
public void sendMessage(Message message) {...}
运行可知,发送消息的执行步骤:
——>ChatRoom.java
——>sendMessage();
——>ChatRoomImpl.java
——>sendMessage()
——>sendMessage(text);
——>sendMessage(String text)
——>sendMessage(message);
——>sendMessage(Message message)
——>SparkManager.getConnection().sendPacket(message);
2、接收消息:
在看发送即时消息源码时,发现接收消息源码也在ChatRoomImpl.java中
运行可知,接收消息的执行步骤:
——>ChatRoomImpl.java
——>insertMessage(Message message)
——>processPacket(final Packet packet)
——>insertMessage(message);
3、发送与接收消息事件机制(附:visio图)