1、ChatServer
@Slf4j @ServerEndpoint("/websocket") @Component public class ChatServer { 
@OnOpen public void onOpen(){ log.info("---------------------------->on Open"); 
} @OnClose public void OnClose(){ log.info("---------------------------->on 
Close"); } @OnMessage @SneakyThrows public void onMessage(String message, 
Session session){ log.info("------------------->message:{}",message); for 
(Session se:session.getOpenSessions()){ //把消息转发到其他用户 
se.getBasicRemote().sendText(message); } } } 
2、启动类的修改
因为我们图片采用base64发送,因此内容肯定会很长,有的小的图片可以发(比如1-2k这种)
但大的就不行。于是就顺着websocket发送内容太长了如何解决的问题
 即加入配置 在原来的启动类中实现ServletContextInitializer接口并设置发送内容大小限制。
@SpringBootApplication public class XiyuemallChatApplication implements 
ServletContextInitializer { public static void main(String[] args) { 
SpringApplication.run(XiyuemallChatApplication.class, args); } //添加websocket支持 
@Bean public ServerEndpointExporter serverEndpointExporter(){ return new 
ServerEndpointExporter(); } @Override public void onStartup(ServletContext 
servletContext) throws ServletException { 
servletContext.setInitParameter("org.apache.tomcat.websocket.textBufferSize","1024000"); 
} } 
前端页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> 
<title>websocket测试</title> </head> <body> <input type="text" id="text"><button 
onclick="sendText()">发送</button> <input type="file" id="f" 
onchange="chooseFile()"> <div id="main"> </div> <script type="text/javascript"> 
var ws = new WebSocket('ws://localhost:8989/websocket'); ws.onopen = function 
(ev) { console.log("------连接服务器成功-----") } ws.onerror=function (ev) { 
console.log("------连接服务器出错-----") } //监听 接收消息 ws.onmessage=function (ev) { 
//解析json var json = JSON.parse(ev.data); //1为文本消息 if(json.code==1){ 
document.querySelector("#main").innerHTML="<p>"+json.msg+"</p>"+document.querySelector("#main").innerHTML; 
//2为图片消息 }else if(json.code==2){ 
document.querySelector("#main").innerHTML='<img width="150px" 
src='+json.msg+'>'+document.querySelector("#main").innerHTML; } } //发送文本消息 
function sendText() { var msg = document.querySelector("#text").value if(msg){ 
//websocket发送文本消息 ws.send(JSON.stringify({code:1,msg:msg})); 
document.querySelector("#text").value="" } } //发送图片消息 function chooseFile() { 
var files = document.querySelector("#f").files if(files.length>0){ var 
fileReader = new FileReader(); fileReader.readAsDataURL(files[0]) 
fileReader.onload=function (e) { var s = 
JSON.stringify({code:2,msg:e.target.result}); //websocket发送图片消息 ws.send(s) } } 
} </script> </body> </html>