ในตัวอย่างแอปพลิเคชันการรวม WebSocket Integration Spring (ตอนที่ 1) เราได้ใช้ WebSocket แต่ยังมีคลาสการใช้งานหลักที่ยังไม่ได้ใช้งาน ที่นี่เราใช้คลาสหลักธุรกิจนี้ เนื่องจากระบบที่ฉันเข้าร่วมในการใช้ WebSocket เพื่อส่งข้อความการใช้งานจึงเป็นวิธีการส่งข้อความ
7. การใช้งาน NewsListenerImpl
แพ็คเกจ cn.bridgeli.websocket; นำเข้า com.google.gson.gson; นำเข้า com.google.gson.gsonbuilder; นำเข้า com.lagou.common.base.util.date.dateutil; นำเข้า com.lagou.platform.news. com.lagou.platform.news.web.dao.ext.model.platnewsvo; นำเข้า com.lagou.platform.news.web.dao.ext.model.searchcondition; นำเข้า com.lagou.platform.news. com.lagou.platform.news.web.service.platnewsservice; นำเข้า org.apache.commons.lang.stringutils; นำเข้า org.json.simple.jsonarray; นำเข้า org.json.simple.jsonobject; org.slf4j.logger; นำเข้า org.slf4j.loggerfactory; นำเข้า org.springframework.beans.factory.annotation.autowired; นำเข้า org.springframework.stereotype.component; java.util.date; นำเข้า java.util.list; นำเข้า java.util.concurrent.executorservice; นำเข้า java.util.concurrent.executors;/*** @description = loggerFactory.getLogger (NewsListenerImpl.class); gson gson = new gsonbuilder (). setDateFormat ("yyyy-mm-dd hh: mm: ss"). สร้าง (); // พูลผู้บริหารส่วนตัว stdschedulerfactory ();@autoWiredPrivate platnewsservice platnewsservice @Overridepublic เป็นโมฆะ afterpersist (platnewsvo platnewsvo) {logger.info ("ฟังข้อความใหม่เพิ่ม - - "); logger.info (" ข้อความใหม่คือ: "+gson.tojson (platnewsvo)); // เริ่มเธรดถ้า (null! = platnewsvo &&! stringutils.isblank PlatnewScategoryType.timing_time.getCategoryid ()) {startTimingTask (Platnewsvo); AfterConnectedEstablished (string email) {logger.info ("ส่งข้อความใหม่หลังจากสร้างการเชื่อมต่อ WebSocket ... "); เป็นโมฆะ startTimingTask (platnewsvo platnewsvo) {logger.info ("เริ่มงานข้อความพุชที่หมดเวลา ... "); วันที่เวลาเวลา = platnewsvo.gettimingtime (); ถ้า (null == เวลาเวลา) {logger.info ("เวลาข้อความ "+dateutil.date2string (เวลาเวลา)); jobdetail jobdetail = jobbuilder.newjob (timingjob.class) .withidentity (platnewsvo.getcurrentooperatoremail ()+" ข้อความ "+platnewsvo.getid () jobdetail.getJobDatamap (). ใส่ ("platnewsservice", platnewsservice); jobdetail.getJobDatamap (). ใส่ ("useremail", platnewsvo.getCurrentOperAtorEmail (); ทริกเกอร์ "+platnewsvo.getId ()," ข้อความในสถานที่ "). startat (เวลาเวลา). withschedule (simpleschedulebuilder.simpleschedule (). ภายใน tragilinds (0) // timenting. {scheduler schede = sf.getscheduler (); sched.schedulejob (jobdetail, trigger); ถ้า (! sched.isshutdown ()) {sched.start ();}} catch (schedulerexception e) {logger.info - - ");}/*** @description: กดเธรดหลังจากสร้างลิงก์ WebSocket*/คลาส AfterConnectEdEstablishedTask ใช้งานได้ {String Email; Public AfterConnectionEstablishedTask (อีเมลสตริง) {this.email = อีเมล;} @overridePublic "+อีเมล+" .... "); ถ้า (! stringutils.isblank (อีเมล)) {searchCondition searchCondition = ใหม่ searchCondition (); searchCondition.setOperatoreMail (อีเมล); jsonArray jsonArray = new JsonArray (); platnewscategorytype.values ()) {searchCondition.setTypeId (type.getCategoryId ()); int count = platnewsservice.countPlatNewsByExample (searchCondition); JSONObject Object = ใหม่ jsonObject (); object.put ("ชื่อ", type.name ()); object.put ("คำอธิบาย", type.getDescription ()); object.put ("นับ", นับ); jsonarray.add (วัตถุ);} ถ้า (null! = jsonarray && jsonarray.size () wssessionLocalcache.get (อีเมล); textMessage remessage = new TextMessage (gson.tojson (jsonarray)); ลอง {ถ้า (null! = usersocketvo) {// push usersocketvo.getwebsocketsession () sendmessage (remessage); usersocketVo.SetLastSendTime (dateUt.getNowDate ()); logger.info ("ข้อความฉบับใหม่ที่สมบูรณ์ให้กับผู้ใช้:"+usersocketVo.getUserEmail ()+" - - ");}} catch (ioexception e) {logger.error (e.toString ()); logger.info (" การกดข้อความในสถานที่ล้มเหลว ... "+e.toString ());}}}}}}}}}}}}}คลาสนี้เป็นการดำเนินธุรกิจหลักของ WebSocket ความมั่นใจเฉพาะของมันเกี่ยวข้องกับธุรกิจ เนื่องจากธุรกิจที่แตกต่างกันการดำเนินการจึงแตกต่างกันอย่างแน่นอน เนื่องจากระบบที่ฉันเข้าร่วมคือการส่งข้อความประโยคหลักที่สุดคือ:
usersocketVo.getWebSocketSession (). sendMessage (remessage);
ส่งข้อความของเราผ่านวิธี SendMessage ของ WebSocketSession นอกจากนี้นี่คือการใช้งานแบ็กเอนด์เป็นหลัก สำหรับการดำเนินการตามส่วนหน้าเพราะฉันเป็นโปรแกรมเมอร์แบ็กเอนด์ฉันให้ความสนใจกับแบ็กเอนด์มากขึ้นดังนั้นฉันจะไม่แนะนำส่วนหน้า คุณสามารถตรวจสอบข้อมูลออนไลน์ด้วยตัวเอง ในที่สุดเมื่อฉันค้นหาสื่อการศึกษามาก่อนฉันพบว่าสไตล์การเขียนของเพื่อนร่วมงานของฉันเกือบจะเหมือนกับบทความ ฉันคิดว่าเพื่อนร่วมงานควรอ้างอิงบทความนี้ดังนั้นจึงมีการระบุไว้ด้านล่างและนับเป็นวัสดุอ้างอิง