package com.web; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.CharBuffer; import org.apache.catalina.websocket.MessageInbound; import org.apache.catalina.websocket.WsOutbound; public class MyMessageInbound extends MessageInbound { private int userIdName = 0; public int getUserIdName() { return userIdName; } protected void onOpen(WsOutbound outbound) { super.onOpen(outbound); userIdName = outbound.hashCode(); EchoServlet.getSocketList().add(this); } protected void onClose(int status) { EchoServlet.getSocketList().remove(this); super.onClose(status); } // 有二进制消息数据到达,比如音频等文件传输 @Override protected void onBinaryMessage(ByteBuffer buffer) throws IOException { } @Override protected void onTextMessage(CharBuffer buffer) throws IOException { String msgOriginal = buffer.toString(); System.out.println("msgOriginal:::"+msgOriginal); int startIndex = msgOriginal.indexOf("!@#$%"); String nikeName = msgOriginal.substring(0, startIndex); String textMsg = msgOriginal.substring(startIndex + 5); // 将字符数组包装到缓冲区中 // 给定的字符数组将支持新缓冲区;即缓冲区修改将导致数组修改,反之亦然 String countMsg = EchoServlet.getSocketList().size() + "人同时在线"; System.out.println("同时在线人数:::"+countMsg); String msg1 = "<div class='style2'><img src='img/emo_02.gif' />"+nikeName + ": " + textMsg+"</div>" ; String msg2 = "<div class='style2'><img src='img/emo_01.gif' /><span style='color:red'>"+nikeName+"</span> " + textMsg+"</div>" ; System.out.println(EchoServlet.getSocketList().size()); for (MyMessageInbound messageInbound : EchoServlet.getSocketList()) { CharBuffer msgBuffer1 = CharBuffer.wrap(msg1); CharBuffer msgBuffer2 = CharBuffer.wrap(msg2); WsOutbound outbound = messageInbound.getWsOutbound(); if (messageInbound.getUserIdName() != this.getUserIdName()) { outbound.writeTextMessage(msgBuffer1); outbound.flush(); } else { outbound.writeTextMessage(msgBuffer2); outbound.flush(); } } } }
最近下载更多
wuying8208 LV15
2023年7月1日
WASDZZ LV13
2022年7月25日
sjc199 LV2
2022年6月13日
wanglinddad LV55
2022年4月17日
waityou2000317 LV4
2022年3月10日
luweiyuan LV3
2020年12月8日
doremi LV6
2020年5月17日
dhb123 LV5
2020年5月1日
shiqianxi LV1
2020年2月19日
taylor503 LV6
2019年12月9日
最近浏览更多
nghiavudev
11月3日
暂无贡献等级
xxxyyyddd
10月8日
暂无贡献等级
郭宇航裹裹 LV5
6月16日
dafeiyu LV10
3月1日
张英伟
2023年12月29日
暂无贡献等级
3263394665 LV9
2023年12月1日
wuying8208 LV15
2023年7月1日
小白会染色
2023年6月29日
暂无贡献等级
gayalee
2023年6月9日
暂无贡献等级
tangruirui
2023年5月23日
暂无贡献等级