Websocket调sendObject,配置encoder的坑

WebSocket踩过的坑 每一个ws连接都会创建一个ws对象,所以当接口中有依赖其他bean时,不能直接使用@Autowired自动注入,而是将依赖的bean声明为静态属性,然后使用构造器注入才能正常注入。服务中http请求鉴权是家常便饭了,但是ws接口略有不同,但是也比较简单:在过滤器中,只需要区分出http和ws类型请求,ws类型请求从固定的请求头中获取token然后正常鉴权即可,只是要注意在对请求头参数鉴权和响应时注意上述第三节即可。正常情况下,websocket可以接收路径参数和文本参数(当然也可以接收字节数据), 阅读详情

在使用sendObject的时候,需要在@ServerEndpoint里面指定编码器,编码器的类型和发送的数据类型必须一模一样,子类也不行,不然就会报错。

编码器就是把入参转成String返回,websocket好像只能发string类型的数据。

public class ListEncoder implements Encoder.Text<List> {
    @Override
    public String encode(List list) throws EncodeException {
        String result = "";
        try{
            result = JSON.toJSONString(list);
        }catch (Exception e){

        }
        return result;
    }

    @Override
    public void init(EndpointConfig endpointConfig) {

    }

    @Override
    public void destroy() {

    }
}

session.getBasicRemote().sendObject(list);

12S BMS 核心设计:基于 STM32H743+BQ34Z100 的 SOC/SOH 实现与全链路技术解析(上) 本文详细介绍了基于STM32H743和BQ34Z100的12串锂电池管理系统(BMS)设计。该系统采用主控制器+专用电量监测计架构,可实现高精度SOC(±1%)和SOH(±2%)估算,支持36V-50.4V电压范围。硬件设计包括电压/电流采样、温度测量、保护电路等模块,软件实现基于HAL库开发,采用DMA方式提高I2C通信效率。系统通过TI专利的ImpedanceTrack™算法实现三维融合估算,并具备完善的保护功能。该设计适用于电动工具、轻型电动车等中功率设备,具有精度高、响应快。 阅读详情

相关推荐

Fabric学习笔记(一)- Centos 7下的Fabric 2.3.2环境搭建

一、 环境准备 (一)、在VMware Workstation 15 安装一个Centos 7的虚拟环境,切换到图形化界面: 参考文章链接:Centos 7切换图形化界面 其中可能在yum groupinstall "X Window System"时会报错:Cannot find a valid baseurl for repo: base/7/x86_6,参考这篇文章即可:安装图形化界面报错解决 (二)、打开终端,安装所需的库: 切换root用户,输入命令:su root yum更新,输入命令:y

茕夜 2611

WebSocket使用javax.websocket.RemoteEndpoint.Basic.sendObject(Object arg0)向页面方法发送对象

WebSocket接口中有一个直接发送对象给页面的方法: voidjavax.websocket.RemoteEndpoint.Basic.sendObject(Object arg0) throws IOException,EncodeException 如果直接使用 client.session.getBasicRemote().sendObject(obj); 就会出现以下错误: javax.websocket.EncodeException: No encoder specified fo

诚的博客 1680

量化交易新手入门:从零开始搭建你的第一个Python交易策略(附完整代码)

本文为量化交易新手提供从零开始搭建Python双均线策略的完整指南,涵盖环境配置、数据获取、策略实现及风险管理等关键步骤。通过详细的代码示例和实践建议,帮助读者快速掌握量化交易的核心技术,并避免常见陷阱。文章特别强调Python在量化交易中的技术革新优势,适合希望进入金融科技领域的初学者。

weixin_26905487的博客 443

websocket使用sendObject产生的问题

当在使用`WebSocket`服务端向客户端发送消息时使用`sendObject`的方式传递信息出现了以下这个错误:javax.websocket.EncodeException: No encoder specified for object of class

安余生的博客 3323

CentOS8安装NVIDIA显卡驱动、CUDA和Anaconda

CentOS8安装NVIDIA显卡驱动和CUDA 参考:CentOS nvidia+cuda+cudnn 安装 安装英伟达显卡驱动 1、检查是否安装了NVIDIA的GPU(硬件层面): lspci | grep -i nvidia 2、安装GCC、kernal组件、dkms等 sudo yum install gcc sudo yum install gcc-c++ sudo yum -y install kernel-devel sudo yum -y install kernel-headers s

智慧的旋风的博客 1万+

RT-Thread新手必看:FMT飞控移植中的5个常见坑及解决方案

本文针对RT-Thread新手在移植FMT开源飞控时遇到的5大核心挑战,提供了深度解决方案。内容涵盖SCons构建系统配置、RT-Thread版本API兼容性处理、BSP与设备驱动适配、TOML系统配置解析以及算法模块集成调试,帮助开发者高效避坑,成功完成飞控移植。

gin88的博客 250

【详细】WebSocket传递对象(sendObject方法)报错解决方案

当我们在服务端使用WebSocket的sendObject方法直接向前端传递一个对象时,会有如下报错 javax.websocket.EncodeException: No encoder specified for object of class [这里是你sendObject里传的对象的全名] 原因是你没有在@ServerEndpoint里指定Websocket的编码器。解决方法如下: 编写一个编码器类,下面是一个比较通用的编码器,你可以直接复制粘贴然后进行简单的修改就好,注解也很详细。

Useless_code的博客 6904

SAP 费用化采购订单简介

费用性采购的核心特点费用性采购的流程费用性采购的优势适用场景业务场景前台操作1、创建成本中心---KS012、创建采购订单---ME21N3、采购订单审批---ME29N4、采购订单收货---MIGO5、查看成本中心费用---S_ALR_870136116、控制费用化的采购订单自动带出科目和成本中心SAP费用性采购(Expense Procurement)指的是企业在采购过程中,直接将采购的物料或服务成本计入费用科目,而不是记入库存账户的采购行为。

我小时候很黑的博客 2012

WebSocket-发送对象-自定义Encoder

因最近要交前端结课作业,需要连数据库并一起打包太麻烦! 用Vue写前后端分离又稍显复杂,所以准备在我自己的服务器上放一个 WebSocket 再通过 前端 来建立连接获取 数据 就行了 概述: Websocket发送对象,通过Encoder 自定义规则(转换为JSON字符串),前端收到后再转换为JSON对象 如果不实现并指定Encoder,直接通过 session.getBasicRemote().sendObject(Object object); 发送对象报异常 javax.websocke.

weixin_44216706的博客 4378

电子元件及其规格书的查找与理解

本内容收录:在电子开发或维修过程中,查找电子元件及其规格书心得体会,以及元件规格书的理解,系个人多年实战经验的系统梳理。内容着重介绍贴片元件代码反查型号的实用技巧,并以三款典型疑难元件为例,详述其完整查找过程与最终型号确认。

让你爱上电路设计 3985

用 AI 设计力打造专业 UI_UX:在 Trea、Qoder 等 AI IDE 中集成 ui-ux-pro-max-skill

的核心是知识库Trea 和 Qoder 虽未被--ai all原生支持,但完全可通过@folder手动集成使用后,你的 AI 生成代码将从“功能可用”跃升至“设计专业”这是零成本提升产品质感的最佳实践之一🎨好的 UI 不应是设计师的专利,而是每个开发者的默认能力。然后在 Trea 或 Qoder 中输入—— 让 AI 成为你最懂设计的结对编程伙伴。

lpfasd123的博客 7099

springboot+vue实现WebSocket过程中遇见的问题,mapper注入,sendObject,方法为null等问题。

- javax.websocket.EncodeException: No encoder specified for object of class [类型](类型问题) - Cannot invoke"com.example.yungongju.impl.async.RealTimeServiceImpl.list()" because "com.example.yungongju.config.WebSocketServer.realTimeService" is null(mapper无法注入)c

weixin_52473844的博客 1169

23、关联挖掘到相关性分析及约束关联挖掘详解

本文详细解析了从关联挖掘到相关性分析的发展过程,以及基于约束的关联挖掘方法。文章介绍了传统支持-置信度框架的局限性,并引入Lift、χ2、All Confidence和Cosine等度量来评估规则的相关性。同时探讨了多种规则约束在数据挖掘中的应用机制及其优化效果,旨在提高挖掘效率和规则质量。最后结合实际案例说明如何综合运用相关性度量与规则约束以满足业务需求,并展望了数据挖掘技术的未来发展。

aa123的博客 102

Spring Boot WebSocket使用及配置

1--依赖 <!-- webSocket依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> 2--配置bean @Configuration public class WebSocketC.

weixin_57929476的博客 3026

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

SpringBoot简单集成WebSocket

SpringBoot简单集成WebSocket(纯后端) 引入依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.7</version> </dependency> <dependency> <groupId>org.

xnian_的博客 146

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Spring Boot(2)【转】

然后,在发送方就可以注入一个RabbitTemplate来发送消息,如下所示的sendRegistrationMessage()方法会将消息发送到registration这个Exchange,而且没有指定Routing Key,所以消息会发送到q_mail和q_sms这两个Queue,sendLoginMessage()方法会根据消息的success标志来判断是否设置Routing Key为"login_failed",也就是成功的消息会发送到q_app和q_mail,失败的消息会发送到q_sms。

milanleon的专栏 1139

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

websocket (@ServerEndpoint)基本使用指南

websocket (@ServerEndpoint)基本使用指南

墨鸦的博客 2万+

Websocket发送Object实体编码

import com.alibaba.fastjson.JSONArray; import javax.websocket.Encoder; import javax.websocket.EndpointConfig; public class ServerEncoder implements Encoder.Text<实体类> { @Override public String encode(实体类 实体类) { try { Obje

qq_35142561的博客 1028

WebSocket使用SendObject 的编码异常No encoder specified for object of class [class java.util.HashMap] 【已解决】

错误的截图: 在WebSocketService(你的不一定是这个名字,就是websocket的实现类) 这里截取了部门代码,主要就是针对sendObject产生的异常问题的处理 /** * 向指定客户端发送消息(对象的形式) * @param userName * @param object */ public static void sendMessage(String userName,Object object){ try {

小刘爱搬砖 5462

SpringBoot集成WebSocket实战一

SpringBoot集成WebSocket实战一1.什么是WebSocket2.为什么要使用WebSocket3.SpringBoot整合WebSocket4. 服务器主动推送数据给前端 1.什么是WebSocket 什么是websocket,百度百科的解释是:"websocket是一种在单个TCP连接上进行全双工通讯的协议,websocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据,在websocket中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的

静幽水 4201

Netty入门(六) WebSocket协议开发

WebSocket协议是和Http协议同地位的应用层协议,都是基于TCP协议之上,但是其是以Http协议为基础的。未了解决Http协议半双工通信模式且数据冗杂的缺点,HTML5提出了WebSocket协议,WebSocket协议是全双工通信,解决了客户端和服务端之间的实时通信问题。浏览器和服务器只需完成一次握手,两者之间就可以创建一个持久性的TCP连接,此后服务器和客户端通过此TCP连接进行双向实时通信。

这里是阿安的博客 3127

如何在 WebSocket 通信中使用 JSON 数据(Java、JavaScript)

背景 在创建聊天应用的基础上,我写了一篇关于服务器和浏览器之间的WebSocket通信的文章。用 Java 实现服务器,用 javascript 实现客户端。 [过去关于套接字通信的文章] ・使用 Java 和 JavaScript与 Web 浏览器进行套接字通信①・使用 Java 和 JavaScript 与 Web 浏览器进行套接字通信② 这一次,我们将在修改聊天应用程序的同时学习“如何处理 JSON 数据”。您还将了解“通过套接字通信发送和接收 JSON 数据”。 目的 了解如何在 Jav.

allway2的博客 1万+

WebSocket(二):传递对象

报错 javax.websocket.EncodeException: No encoder specified for object of class 使用websocket传递对象

肉团子的博客 1万+

websocket:数组转换成websocket数据

这是我写即时聊天遇到的问题。 如果是简单的即时聊天,可以直接返回字符串。但是我的聊天信息要从数据库获得,所以就要用到数组了。其实也很简单,就是把数组转换成json数据就可以了,然后再用websocket协议传过去。上代码 这是取出数据库的数据 function get_message($sendid,$accessid) { $arr = ''; mysql_sele

云之城 5501

websocket简单使用(前端及后端)

使用环境:jdk1.8+maven+springboot

qq_42581267的博客 3774

websocket详解

websocket详解

wangshuaibinggg的博客 1453
上一篇: 关于springboot使用定时器的几种方式
下一篇: 如何分辨同时发起的两笔websocket的session
RZ_java
博客等级 码龄5年 6粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值