关于1.这个问题我真的不明白,Websockets连接和TCP连接一样,你可以在发回之前修改接收日期。Bristleback Server中的简单示例(服务器获取已编辑用户状态的预览,然后检查其中是否包含非法字词,然后将状态的完整预览发送回用户:
@ActionClass
public class ClientNotificationUpdateAction {
@Action
public UserStatus previewEditedStatus(FacebookUser user, UserStatus status) {
removeBadWords(status);
return status;
}
}
关于 2. WebSockets 服务器有关于所有已连接用户的信息,因此可以简单地将消息发送给所有已连接用户,或者另外过滤以发送此通知,例如仅发送给密友。这里还有一些代码(客户端更新他的状态并将这个状态发送回他的所有朋友)。
@ActionClass
public class ClientNotificationUpdateAction {
@ObjectSender
private ConditionObjectSender conditionObjectSender;
@Action
public void updateStatus(FacebookUser user, UserStatus status) throws Exception {
SendCondition sendToFriendsOfUser = new FiendsOfUserCondition(user);
BristleMessage message = ActionMessageFactory
.createMessage("ClientNotificationUpdate", "updateStatus", status);
conditionObjectSender.sendMessage(message, sendToFriendsOfUser);
}
}
关于 3. 确实不是所有的互联网浏览器都实现了 WebSockets 协议(尤其是在移动设备中)