WebSocket如何区分发送的数据

WebSocket如何区分发送的数据,websocket,phpwebsocket,Websocket,Phpwebsocket,我正在阅读如何实现WebSocket。目前,我正在研究fancywebsockets实现,因为它更容易设置。我的问题更多的是为了理解WebSocket,所以我想对此进行一些分类 您能否控制WS发送的数据(即接收数据的客户端) 比如说,在一个私有消息场景中,您如何处理消息,在这个场景中,您还将消息存储在数据库中。如果您将文本存储在数据库中并在屏幕上显示消息,WS将如何在浏览该页面的其他人中进行更改。(WS是否侦听该页面中发生的所有更改?)。一个明显的例子是在facebook上,两个人浏览同一堵墙时

我正在阅读如何实现WebSocket。目前,我正在研究fancywebsockets实现,因为它更容易设置。我的问题更多的是为了理解WebSocket,所以我想对此进行一些分类

  • 您能否控制WS发送的数据(即接收数据的客户端)

  • 比如说,在一个私有消息场景中,您如何处理消息,在这个场景中,您还将消息存储在数据库中。如果您将文本存储在数据库中并在屏幕上显示消息,WS将如何在浏览该页面的其他人中进行更改。(WS是否侦听该页面中发生的所有更改?)。一个明显的例子是在facebook上,两个人浏览同一堵墙时会看到墙主人的更新

  • 虽然有点不相关,但好奇的问题。如果WebSocket为我们提供了数据的实时更新,为什么没有人创建Google Wave服务的fork版本呢。是不是因为不是每个浏览器都有一个明确的实现


  • 谢谢。

    关于1。我真的不明白这个问题,Websockets连接和TCP连接是一样的,你可以在发送回之前修改接收日期。中的简单示例(服务器获取已编辑用户状态的预览,然后检查其是否包含非法单词,然后将状态的完整预览发送回用户:

    @ActionClass
    public class ClientNotificationUpdateAction {
    
      @Action
      public UserStatus previewEditedStatus(FacebookUser user, UserStatus status) {
        removeBadWords(status);
        return status;
      }
    }
    
    关于2.WebSockets服务器有关于所有连接用户的信息,因此可以简单地将消息发送给所有连接的用户,或者额外过滤以发送此通知(例如,仅发送给好友)。下面是一些代码(客户端更新其状态,并将此状态发送回其所有朋友)

    关于3.确实不是所有的互联网浏览器都实现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);
      }
    }