如果你能搜到這篇文章,說明你對WebSocket已經有所瞭解。在此就不作贅述。
1、準備好一個ssm或者ssh框架專案,最好是使用maven管理的
本文以ssm為例。
2、配置pom.xml檔案:
主要為了引入支援websocket的spring4 jar包。
3、編寫你的WebSocket:
主要包括三部分:WebSocketConfig(注入處理器)-->MyHandler(開發自定義功能)-->MyHandshakeInterceptor(攔截器),(可參考官網提供的例項程式碼)
4、spring檔案(applicationContext.xml、spring-mvc.xml、web.xml)配置,採用自動注入方式。
此步為難點所在:網上有好N種寫法,2個配置檔案組合就有N的平方種寫法。經過多次試驗,終於保證了webSocket與Controller同時註冊成功。所以,可行的方法不僅限於本文提供的這種。
5、建立連線:
由介面中的sockjs呼叫,詳情見原始碼。(注:假如你的sockjs建立連線等內容寫在main.jsp,那麼一旦跳轉離開該介面,webSocket連線會自動斷開,為了避免反覆連線帶來一些不必要的麻煩。本例將sockjs連線功能寫在了一個介面的同時,在該介面內新增iframe,讓iframe中的介面去跳轉。)
6、傳送訊息:
在自己的controller中注入webSocket的處理器,使用其中的方法即可。
@Autowired
MyHandler myHandler;
@RequestMapping("/tt")
public String sendMsgToUser(HttpServletRequest request){
String msg = "2016,與你相遇,猴幸運!";
String userCd = (String) request.getSession().getAttribute("USER_CD");
myHandler.sendMessageToUser(userCd, new TextMessage(msg));
return "redirect:/web";
}
本專案原始碼已放在github上:https://github.com/chenhongen…,且程式碼中有所註釋,本文只為操作嚮導,不貼上大量程式碼以亂視聽。
當然,在你匯入原始碼實際開發後必不可少會產生進一步問題,歡迎交流(qq:251601797)。
本例剝離至本人15年畢設,時隔8個月,重新實操遇到了不少問題,所以希望大家有一點小小“成果”之類的都能及時記錄。
參考文獻:
官方(純英文):http://docs.spring.io/spring/…
Spring+Websocket實現訊息的推送:http://my.oschina.net/ldl1232…