日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jee websocket搭建总结

發布時間:2025/7/14 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jee websocket搭建总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、使用框架spring+springmvc+mybatis+jdk7+tomcat7+maven

2、基本原理:

    a. WebSocket協議是一種雙向通信協議,它建立在TCP之上,同http一樣通過TCP來傳輸數據,但是 它和http最大的不同有兩點:

?????????????????? 1.WebSocket是一種雙向通信協議,在建立連接后,WebSocket服務器和Browser/UA都能主動地向對方發送或接收數據,就像Socket一樣,不同的是WebSocket是一種建立在Web基礎上的一種簡單模擬Socket的協議;

?????????????????? 2.WebSocket需要通過握手連接,類似于TCP它也需要客戶端和服務器端進行握手連接,連接成功后才能相互通信。

    b.struts ? 和 websocket ?是2條處理請求的路,被struts 匹配上了 ,自然就到不了 websocket的處? 理邏輯,(http和ws是兩種不同的請求協議,注意框架的攔截器(過濾器))

3、客戶端:

<html> <head><title>Title</title><style>div {margin-left: auto;margin-right: auto;}</style> </head> <body onLoad="startWebSocket()"> <script type="text/javascript">function clog(title) {console.log(title);}var ws = null;function startWebSocket() {if ('WebSocket' in window) {try {ws = new WebSocket("ws://127.0.0.1:80/websocket/tui");} catch (e) {clog("1");}} else if ('MozWebSocket' in window) {ws = new MozWebSocket("ws://127.0.0.1:80/websocket/tui");} else {clog("websocket not support");}ws.onmessage = function (evt) {say(evt.data);};ws.onclose = function (evt) {clog("close!");};ws.onopen = function (evt) {clog("open");};}function sendMsg() {ws.send(document.getElementById('writeMsg').value);}function say(msg) {var div = document.createElement("div");div.innerHTML = msg;document.body.appendChild(div);}</script> <div onClick="say('d')">WebSocket聊天室</div> <div style="border:1px solid #09F"></div> <input type="text" id="writeMsg"/> <input type="button" value="send" onClick="sendMsg()"/></body> </html>

4、服務端:

@ServerEndpoint(value = "/websocket/tui") public class WebSocketDemo{private static final String GUEST_PREFIX = "Guest";private static final AtomicInteger connectionIds = new AtomicInteger(0);private static final Set<WebSocketDemo> connections = new HashSet<>();private final String nickname;private Session session;public WebSocketDemo() {nickname = GUEST_PREFIX + connectionIds.getAndIncrement();}//建立連接 @OnOpenpublic void start(Session session) {this.session = session;connections.add(this);String message = String.format("* %s %s", nickname, "has joined.");System.out.println(message);}//接受消息 @OnMessagepublic void incoming(String message) {System.out.println(message.toString());//broadcast(filteredMessage); broadcast(message.toString());}//客戶端關閉了連接 @OnClosepublic void end() {connections.remove(this);String message = String.format("* %s %s", nickname, "has disconnected.");System.out.println(message);//broadcast(message); }//WebSocket服務出錯 @OnErrorpublic void onError(Throwable t){//log.error("Chat Error: " + t.toString(), t);System.out.println("server has an error!");}private static void broadcast(String msg) {for (WebSocketDemo client : connections) {try {synchronized (client) {client.session.getBasicRemote().sendText(msg);}} catch (IOException e) {//log.debug("Chat Error: Failed to send message to client", e); connections.remove(client);try {client.session.close();} catch (IOException e1) {// Ignore }String message = String.format("* %s %s",client.nickname, "has been disconnected.");broadcast(message);}}} }

注意事項:

???????? 1、訪問攔截器

???????? 2、注意部署的包沖突,例如:javax.websocket只是編譯需要,而發布不需要,maven依賴注意適用范圍

???????? 附:

<!--websocket編譯需要,發布不需要--> <!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-coyote --> <dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-coyote</artifactId><version>7.0.12</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-juli --> <dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-juli</artifactId><version>8.5.3</version> </dependency> <!-- https://mvnrepository.com/artifact/javax.websocket/javax.websocket-api --> <dependency><groupId>javax.websocket</groupId><artifactId>javax.websocket-api</artifactId><version>1.1</version><scope>provided</scope> </dependency>

?

轉載于:https://www.cnblogs.com/yuan951/p/6245845.html

總結

以上是生活随笔為你收集整理的jee websocket搭建总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本一二三视频 | 我爱52av | 亚洲成人网络 | 日韩精品中文字幕一区二区 | 日本大尺度吃奶做爰视频 | 啄木乌欧美一区二区三区 | av在线资源网站 | 天海翼av在线 | www国产无套内射com | 啪啪自拍 | 最新中文字幕av | 国产小视频免费观看 | 99爱99| 日本久热 | 多啪啪免费视频 | 天天在线免费视频 | 95看片淫黄大片一级 | 不卡影院 | 欧美日韩午夜 | 日韩免费观看av | 成年人免费视频播放 | 亚洲va欧美va国产综合久久 | 91国内在线视频 | 网址在线观看你懂的 | 性高潮影院 | 国产成人免费在线观看 | 波多野结衣免费看 | 麻豆一区二区三区四区 | 99黄色片 | 实拍澡堂美女洗澡av | 在线香蕉视频 | 99热超碰在线 | 91 免费看片 | 国产精品一卡二卡在线观看 | 情五月| 欧美 日韩 中文字幕 | 国产宾馆实践打屁股91 | 在线观看视频国产 | 中文天堂av | 欧美黑人激情 | 中日韩在线播放 | 123成人网 | 国产美女三级无套内谢 | 亚洲成年人在线 | a级片免费在线观看 | 欧美极品一区 | 日日爽爽 | 69免费视频| 国产麻豆精品在线 | 五月天一区二区 | 美女隐私无遮挡网站 | 99国内揄拍国内精品人妻免费 | 少妇无套高潮一二三区 | 精品1卡二卡三卡四卡老狼 日韩三级网 | 亚洲电影在线看 | 好男人网站 | 91久色视频 | 成人乱码一区二区三区 | 成年人看的羞羞网站 | 欧美变态视频 | 亚洲自拍偷拍av | 歪歪视频在线观看 | 国产做受高潮漫动 | 一区二区不卡免费视频 | 亚洲精品乱码久久久久久蜜桃欧美 | 中文字幕91爱爱 | 欧美日韩免费高清一区色橹橹 | 日韩资源在线观看 | 国产精品波多野结衣 | 国产精品伊人 | 免费看美女被靠到爽的视频 | 亚洲97视频 | 久久久男人天堂 | 精品免费 | 午夜一区在线 | 欧美cccc极品丰满hd | 国产精品毛片久久久久久久 | 中文字幕国产亚洲 | 国产精品免费视频一区 | 女人和拘做爰正片视频 | 黄色在线观看视频网站 | 最新中文在线视频 | 免费黄色国产视频 | 天天射天天搞 | h网址在线观看 | 欧美国产中文 | 欧美黑人一级爽快片淫片高清 | 精品国产一区二区三区噜噜噜 | 亚洲国产理论 | 91桃色免费视频 | v片在线观看 | 无码人妻精品一区二区三区99日韩 | 男人的天堂狠狠干 | 中文在线观看av | 修女也疯狂3免费观看完整版 | 国产成人一区二区三区电影 | 美女精品一区 | 成人h片 | 午夜免费看视频 |