当前位置: 首页 > news >正文

重庆家居网站制作公司南京seo公司

重庆家居网站制作公司,南京seo公司,可信网站认证必须做吗,外贸销售渠道目录 一、前言二、Principal三、使用 一、前言 我们知道可以使用客户端订阅的主题前缀从 stomp 服务器向客户端发送消息,例如 /topic/hello。我们还知道我们可以向特定用户发送消息,因为 spring 提供了convertAndSendToUser(username, destination, mes…

目录

  • 一、前言
  • 二、Principal
  • 三、使用

一、前言

我们知道可以使用客户端订阅的主题前缀从 stomp 服务器向客户端发送消息,例如 /topic/hello。我们还知道我们可以向特定用户发送消息,因为 spring 提供了convertAndSendToUser(username, destination, message)API。它接受一个字符串用户名,这意味着如果我们以某种方式为每个连接都有一个唯一的用户名,我们能够向订阅某个主题的特定用户发送消息。

那么,这个用户名来自哪里?或者说它是如何用这个用户名确定对应连接的?

二、Principal

对于上面的回答是:用户名是 java.security.Principal 的一部分。每个StompHeaderAccessor或WebSocketSession对象都有此主体的实例,我们可以从中获取用户名。但是,它不是自动生成的。它必须由服务器为每个会话手动生成。

要使用它,必须先实现它:

class StompPrincipal implements Principal {String nameStompPrincipal(String name) {this.name = name}@OverrideString getName() {return name}
}

然后,通过覆盖 DefaultHandshakeHandler 为每个连接生成唯一的用户名。可以使用任何逻辑来生成用户名。这是使用 UUID 的一种潜在逻辑:

class CustomHandshakeHandler extends DefaultHandshakeHandler {@Overrideprotected Principal determineUser(ServerHttpRequest request,WebSocketHandler wsHandler,Map<String, Object> attributes) {return new StompPrincipal(UUID.randomUUID().toString())}
}

最后,需要配置 Websocket 以使用自定义握手处理程序。

@Override
void registerStompEndpoints(StompEndpointRegistry stompEndpointRegistry) {stompEndpointRegistry.addEndpoint("/stomp") .setHandshakeHandler(new CustomHandshakeHandler()) //在这里设置.withSockJS() 
}

三、使用

现在,服务器已配置为为每个连接生成唯一的主体名称。它将将该主体作为对象的一部分传递StompHeaderAccessor,可以通过连接事件侦听器、MessageMapping 函数等访问这些对象…

来自事件监听器:

@EventListener
void handleSessionConnectedEvent(SessionConnectedEvent event) {// Get AccessorStompHeaderAccessor sha = StompHeaderAccessor.wrap(event.getMessage())
}

来自消息映射 API:

@MessageMapping('/hello')
protected void hello(SimpMessageHeaderAccessor sha, Map message) {// sha 在参数中可用
}

使用convertAndSendToUser(…),向用户发送消息时,使用类似这样的内容:

convertAndSendToUser(sha.session.principal.name, '/topic/hello', message)

但是,要订阅客户端,必须使用:

client.subscribe('/user/topic/hello', callback)

如果要接收广播:

client.subscribe('/topic/hello', callback)
http://www.yayakq.cn/news/411705/

相关文章:

  • 宠物网站开发与实现结论北京制作网站公司哪家好
  • 浮梁网站建设怎么删除建站网站程序
  • 昆山公司网站制作动漫制作技术专业简历
  • 哈尔滨队网站网页美工淮安网站建设价位
  • a5站长平台大连公司
  • 四方区企业型网站建设网页设计个人主页模板
  • 免费空间做网站建网站卖广告
  • 怎么做公司网站seo做电脑系统最好的网站
  • 17做网站官网深圳最好的区排名
  • php网站怎么做301跳转提供手机自适应网站建设维护
  • 微博如何做的跟网站一样数据开发网站模板
  • asp网站建设实录网站建设与管理难不难
  • 建设网站不显示添加白名单手机网站建设价格是多少
  • 怎样建设淘客网站晋城有做网站的吗
  • 台州网站制作服务景区门户网站建设方案
  • 阿里巴巴国际网站建设企业网站建设步骤
  • 做pc端网站多少钱网易蜂巢 wordpress
  • 白云网站建设哪家好网站建设七大步骤
  • 网站建设实例pdf下载网站建设方案总结语
  • 合肥外贸网站建设公司庐江网站制作公司
  • 湖南seo网站设计网页设计与制作首页
  • 长沙学做网站建设做抽奖网站用什么cms
  • 小羚羊网站怎么建设万虹点读机如何做系统下载网站
  • 隆尧网站制作wordpress彩色标签云插件
  • 一家专门做鞋子的网站旅游网站开发书籍
  • 外贸网站推广优化查看网站有没有做301
  • 全球云邮登陆网站什么是做学院网站
  • 中国建设网官方网站济宁国泰网站 建设在作用是什么
  • 古镇建设网站网站如何做流量赚钱
  • 网站策划案怎么做网站访客记录 是后台做吗