赞
踩
基于netty的socket.io集成非常容易、并且功能强大,协议可自定义长连接、websocket等,非常适用与前后端互相推送消息、以及聊天等功能。
https://www.jianshu.com/p/c67853e729e2
<dependency>
<groupId>com.corundumstudio.socketio</groupId>
<artifactId>netty-socketio</artifactId>
<version>1.7.19</version>
</dependency>
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>NETTY SOCKET.IO DEMO</title> <base> <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/socket.io/1.3.5/socket.io.min.js"></script> <style> body { padding: 20px; } #console { height: 350px; overflow: auto; } .username-msg { color: orange; } .connect-msg { color: green; } .disconnect-msg { color: red; } </style> </head> <body> <h1>demo</h1> <div id="console" class="well"></div> <br/> 工号:<input type="text" name="lastname" id="account"> <br/> 内容:<div> <div style="width: 410px;float: left"><textarea id="sendMsg" style="width: 400px;height: 100px;"></textarea></div> <div style="float: left"><input type="button" value="发送" onclick="sendMessage()" style="width: 100px;height: 50px;"/></div> </div> </body> <script type="text/javascript"> var socket; connect(); function connect() { //初始连接,用户的id参数等 var opts = { query: 'userId=' +'1', upgrade: false, transports: [ 'websocket' ] //开启websocket协议 }; socket = io.connect('http://localhost:9099', opts); socket.on('connect', function () { console.log("连接成功"); serverOutput('<span class="connect-msg">连接成功</span>'); }); // 监听服务器推送的消息 socket.on('push_event', function (data) { output('<span class="username-msg">' + data + ' </span>'); console.log(data); }); // 监听服务器下线 socket.on('disconnect', function () { serverOutput('<span class="disconnect-msg">' + '已下线! </span>'); }); socket.on('connect_timeout',function(){ output('<span class="username-msg">' + '与服务器连接超时' + ' </span>'); }) // 监听服务器推送的消息 socket.on('message', function (data) { output('<span class="username-msg">' + data + ' </span>'); console.log(data); }); } function output(message) { var element = $("<div>" + " " + message + "</div>"); $('#console').prepend(element); } function serverOutput(message) { var element = $("<div>" + message + "</div>"); $('#console').prepend(element); } // 指定要推送的用户id与消息内容推送到后端,后端自定义监听message事件字符串解析拿到id推送到相关用户 function sendMessage(){ var msg= $("#sendMsg").val(); var account= $("#account").val(); socket.emit('message',account+'-'+msg); $("#sendMsg").val(""); } </script> </html>
如要使用更多的事件以及功能去官方文档找:https://socket.io
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。