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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

WebSocket简单使用

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WebSocket简单使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WebSocket

碎語

最近幾日對websocket研究了一下,我就介紹一下服務端基于java的websocket的基本用法吧。至于websocket是什么的,基本原理我就不廢話了,百度的介紹很詳細。

正題

客戶端(瀏覽器)

var socket = new WebSocket("ws://localhost:8080/websocket");socket.onopen = function(){socket.send("i am Tanghulu");console.log("socket is open");}socket.onmessage = function(msg){console.log(msg.data);}socket.onerror = function(error){console.log(error);}

上面是創建websocket的js代碼,首先建立一個WebSocket對象,在建立的過程中指定的url是服務端用來處理這個 連接的程序。當該socket順利打開后會在控制臺輸出"socket is open"這句話并向服務端發送一句話"i am Tanghulu",并且每當socket收到信息后會把信息輸出到控制臺,當連接發生異常的時候同樣會將錯誤信息輸出到控制臺。

服務端

import javax.websocket.OnError;import javax.websocket.OnMessage;import javax.websocket.OnOpen;import javax.websocket.Session;import javax.websocket.server.ServerEndpoint;@ServerEndpoint(value="/websocket")public class WebSocket{@OnOpenpublic void onOpen(Session session){System.out.println("socket is open");}@OnMessagepublic String onMessage(String msg,Session session){System.out.println(msg);return "server is received";}@OnClosepublic void onClose(){System.out.println("close...");}@OnErrorpublic void onError(Throwable error){System.out.println(error.getMessage());}}

這段服務端代碼,和上面js代碼基本差不多,都是在某一事件發生后將信息打印到控制臺,服務端程序在收到消息的時候會將消息打印出來,并且返回一個字符串,這個字符串客戶端會收到。

需要注意的是類的開始的標注中有個value="/websocket",這個指定了客戶端如何定位這個服務端程序。(ws://localhost:8080/websocket),該程序需要websocket-api.jar 這個包,網上有很多資源。

關于部署

只需要將該程序直接放在你的web項目中即可,web容器會自動加載它的。

更多功能

以上介紹的是websocket如何傳送字符串信息,websocket當然還可以傳送二進制數據流,websocket可以直接send一個js的Blob對象或者是ArrayBuffer對象。當然在服務端接收時代碼稍有變化

@OnMessagepublic String onMessage(InputStream ips,Session session){//to do code ...}//或者下面的方法也可以用來接受二進制信息@OnMessagepublic String onBinaryMessage(byte[] byteMessage,Session session){//to do code ...}

當發送的是Blob對象的時候服務器會自動調用該方法,當然如果你定義了兩個OnMessage事件方法,方法名字要不一樣了!

總結

以上是生活随笔為你收集整理的WebSocket简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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