1、客户端给服务端发送带有ack请求的消息,服务端收到消息后发送ack响应消息给客户端
var userName = 'user' + Math.floor((Math.random()*1000)+1);
function sendMessage() {
var message = $('#msg').val();
$('#msg').val('');
var jsonObject = {userName: userName,message: message};
//发送需要ack响应的消息
socket.emit('ackevent1', jsonObject, function(arg1, arg2) {
alert("从服务器发来的确认消息1:" + arg1 + ", 确认消息2:" + arg2);
});
}
2、服务端接收消息,发送ack响应消息给客户端
server.addEventListener("ackevent1", ChatObject.class, new DataListener<ChatObject>() {
@Override
public void onData(final SocketIOClient client, ChatObject data, final AckRequest ackRequest) {
// 检查是否是客户端发来的ack 请求确认消息
if (ackRequest.isAckRequested()) {
// 发送ack响应消息给客户端
ackRequest.sendAckData("服务器响应ack响应消息1", "服务器响应ack响应消息2");
}
}
});
3、流程如下
4、服务端发送带有ack请求的消息给客户端,客户端收到消息后发送ack响应消息给服务器
// 服务器发送 ackevent2 带有ack请求的数据的消息给客户端
ChatObject ackChatObjectData = new ChatObject(data.getUserName(), "服务器发送带有ack请求的消息给客户端");
client.se