java怎么做websocket
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎么做websocket相关的知识,希望对你有一定的参考价值。
参考技术A 我不知道你想用websocket实现什么样的功能,一般配合html5的话websocket可以解决服务端和客户端消息实时传递的问题,如消息推送(webQQ这种)。它的初始连接是http转成websocket连接。实现的话要做两件事,一端是在服务器实现service,这个有点像tcplistener一样;
另一个是客户端(浏览器)开发,可以用JS实现:
<html>
<head>
<meta
charset="utf-8"
/>
<script
type="text/javascript">
var
host
=
'127.0.0.1';
var
port
=
8080;
var
url
=
'ws://'+host+':'+port+'/';
var
w
=
new
WebSocket(url);
//构建于服务器之间的连接通信
<!--var
audioElement
=
document.createElement('audio');
-->
<!--audioElement.setAttribute('src',
'qqmsg.mp3');-->
w.onopen
=
function()//通过onopen事件句柄来监听socket的打开事件
$('chat-box').innerHTML
=
'已连接到服务器......<br/>';
w.onmessage
=
function(e)//用onmessage事件句柄接受服务器传过来的数据
var
msg
=
e.data;
var
chatBox
=
$('chat-box');
//
audioElement.play();
chatBox.innerHTML
=
chatBox.innerHTML+msg+'<br/>';
function
send()//使用send方法向服务器发送数据
var
talk
=
$('talk');
var
nike
=
$('nike');
w.send('<strong
style="color:red">'+nike.value+':</strong>'+talk.value);
function
$(id)
return
document.getElementById(id);
</script>
</head>
<body>
<div
id="chat-box"
style="border:1px
solid
#cccccc;
width:400px;
height:400px;
overflow:scroll;"></div>
昵称:
<input
type="text"
id="nike"/>
<br/>
内容:
<input
type="text"
id="talk"/>
<input
type="button"
id="send"
onClick="send();"
value="发送"/>
</body>
可参考IBM社区
http://www.ibm.com/developerworks/cn/web/1112_huangxa_websocket/
</html>
怎么用netty搭建一个websocket的java客户端
参考技术ANetty基于websocket案例演示
TextWebSocketFrameHandler -- 对应Text消息的处理类
WebSocketServer -- 系统主类
WebSocketServerInitializer -- 服务主程序的初始化类
WebSocketServer 类代码:
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioServerSocketChannel;
public final class WebSocketServer
private int port = 0;
public WebSocketServer(int port)
this.port = port;
以上是关于java怎么做websocket的主要内容,如果未能解决你的问题,请参考以下文章