基於WebSocket的實時通訊開發步驟(含源碼)

若是你能搜到這篇文章,說明你對WebSocket已經有所瞭解。在此就不做贅述。

一、準備好一個ssm或者ssh框架項目,最好是使用maven管理的html

本文以ssm爲例。

二、配置pom.xml文件:git

主要爲了引入支持websocket的spring4 jar包。

三、編寫你的WebSocket:github

主要包括三部分:WebSocketConfig(注入處理器)-->MyHandler(開發自定義功能)-->MyHandshakeInterceptor(攔截器),(可參考官網提供的實例代碼)

四、spring文件(applicationContext.xml、spring-mvc.xml、web.xml)配置,採用自動注入方式。web

此步爲難點所在:網上有好N種寫法,2個配置文件組合就有N的平方種寫法。通過屢次試驗,終於保證了webSocket與Controller同時註冊成功。因此,可行的方法不只限於本文提供的這種。

五、創建鏈接:spring

由界面中的sockjs調用,詳情見源碼。(注:假如你的sockjs創建鏈接等內容寫在main.jsp,那麼一旦跳轉離開該界面,webSocket鏈接會自動斷開,爲了不反覆鏈接帶來一些沒必要要的麻煩。本例將sockjs鏈接功能寫在了一個界面的同時,在該界面內添加iframe,讓iframe中的界面去跳轉。)

六、發送消息:spring-mvc

在本身的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...,且代碼中有所註釋,本文只爲操做嚮導,不粘貼大量代碼以亂視聽。websocket

固然,在你導入源碼實際開發後必不可少會產生進一步問題,歡迎交流(qq:251601797)。mvc

本例剝離至本人15年畢設,時隔8個月,從新實操遇到了很多問題,因此但願你們有一點小小「成果」之類的都能及時記錄。app

參考文獻:
官方(純英文):http://docs.spring.io/spring/...
Spring+Websocket實現消息的推送:http://my.oschina.net/ldl1232...框架

相關文章
相關標籤/搜索