如何開發部署websocket端點
下面YJBYS小編為大家整理了關於如何利用Java websocket API的編程式版本開發並部署(服務器與客户端)websocket端點的文章,希望對你有所幫助。
第一步——擴展oint類
public class ProgrammaticEchoEnpoint extends Endpoint {
@Override
public void onOpen(Session session, EndpointConfig config) {
tln("Peer " + d() + " connected");
essageHandler(new e() {
@Override
public void onMessage(String message) {
try {
asicRemote()Text("Got message from " + d() + "n" + message);
} catch (IOException ex) {
}
}
});
}
@Override
public void onClose(Session session, CloseReason closeReason) {
tln("Peer " + d() + " disconnected due to " + easonPhrase());
}
@Override
public void onError(Session session, Throwable error) {
tln("Error communicating with peer " + d() + ". Detail: "+ essage());
}
}
接下來我們還要編寫客户端端點(使用同樣的API組合):
public class ProgrammaticEchoClient extends Endpoint {
@Override
public void onOpen(Session session, EndpointConfig config) {
tln("Connected to server");
}
//a message handler and other life cycle implementations have been skipped on purpose...
}
第二步——實現ServerApplicationConfig接口
該接口屬於er包的組成部分,且能夠通過覆寫以實現端點部署中的定製化邏輯(適用於註釋以及編程式端點)。
public class CustomServerAppConfigProvider implements ServerApplicationConfig {
@Override
public Set getEndpointConfigs(Set> endpointClasses) {
Set result = new HashSet<>();
for (Class epClass : endpointClasses) {
//need to ignore Client endpoint class
if (ls(s)) {
ServerEndpointConfig sec = te(epClass, "/letschat")d();
(sec);
}
}
return result;
}
@Override
public Set> getAnnotatedEndpointClasses(Set> scanned) {
return ySet();
}
}
怎樣處理Client端點?
如果有必要,大家也可以創建自己的ClientEndpointConfig實例,並利用它對指向websocket服務器端點的連接進行初始化。
WebSocketContainer webSocketContainer = ebSocketContainer();
ClientEndpointConfig config = te()ders(s)d();
Session session = ectToServer(StockTickerClient()s, config,
new URI("ws://"));
注意事項:
客户端以及服務器端的ig對象只能為等同於(編程式)對象的@ServerEndpoint以及@ClientEndpoint註釋元素(例如值、編碼器、解碼器以及配置器等等)。
各獨立builder類(der與der)用於分別創建服務器與客户端配置實例。
ServerEndpointConfig實例的創建屬於mandatory,因為服務器端點無法在不配合URI的前提下進行部署。不過這種情況在客户端端點方面不會出現——因為其全部作用就是接入現有服務器端點。
端點config(服務器&客户端)擁有configurator概念,其可通過對應builder方法進行創建與設置。
-
解析常用J2EE應用服務器比較
J2ee開發主要是瀏覽器和服務器進行交互的一種結構.邏輯都是在後台進行處理,然後再把結果傳輸回給瀏覽器。可以看出服務器在這種架構是非常重要的。下面是小編整理的關於常用J2EE應用服務器比較,希望大家認真閲讀!(一)先簡單介紹一下這兩種服務器。WebLogic是美...
-
Java EE的Web服務體系結構
Web服務(WebServices)是目前程序設計領域中的一項新技術,是一個嶄新的分佈式計算模式,在不同系統平台之間具有互操作性,通過因特網,實現不同應用程序之間的遠程過程調用。下面小編為大家整理了關於JavaEE的Web服務體系結構,一起來看看吧:Web服務使用基於XML的消息處...
-
J2EE當前持久層設計常見問題
當前J2EE項目中,面臨的一個共同問題就是如果控制事務的併發訪問,雖然有些持久層框架已經為我們做了很多工作,但是理解原理,對於我們開發來説還是很有用處的。下面小編為大家整理了J2EE當前持久層設計的常見問題,一起來看看吧:事務併發訪問控制策略當前J2EE項目中,面臨...
-
J2EE入門問題解答
J2EE是一套全然不同於傳統應用開發的技術架構,包含許多組件,主要可簡化且規範應用系統的開發與部署,進而提高可移植性、安全與再用價值。1什麼是J2EE?它和普通的Java有什麼不同?答:J2EE全稱為Java2PlatformEnterpriseEdition。J2EE平台本質上是一個分佈式的服務器...
相關文章
- 如何應對Win8.1系統下taskhost.exe佔用CPU過高
- 六年級英語Unit 1 Welcome back to school教學設計
- 《Welcome back to school》第三課時教案
- 《Welcome back to school 》教學設計
- 《Welcome back to school》的教案設計
- 英語滿分作文:Reading-TheBestMeanstoAcquireknowledge
- 英語教案:Welcome back to school
- 關於Outlook Web Access 2007的介紹
- j2ee培訓:如何構建RESTful Web Service
- Welcome back to school 英語教學反思範文