websocket

一:

1、webosocket与socket

 websocket属于应用层协议
 socket属于传输层协议
 socket相当于一组接口,当两台主机进行通信时候,必须通过此API利用TCP/IP协议建立连接 

2、websocket与http

websocket是HTTP5新增的协议,实现了浏览器和服务器全双工通信,能节省服务器资源和带宽实现实时通信
两者基于TCP/IP,且都是应用层协议
websocket是全双工,http是单向的
websocket需要握手建立连接

二:
基于tomcat7.5+对websocket的实现
服务器端API,访问:ws://[IP或域名]:[server端口]/websocket

@ServerEndpoint(value = "/websocket")
public class WebSocketSync {

    private static CopyOnWriteArraySet<WebSocketSync> webSocketSet = new CopyOnWriteArraySet<WebSocketSync>();

    private Session session;

    @OnOpen
    public void OnOpen(Session session){
        this.session = session;
        webSocketSet.add(this);
    }

    @OnClose
    public void OnClose(){
        this.session = session;
        webSocketSet.remove(this);
    }

    @OnError
    public void OnError(Session session, Throwable error){
        logger.error(error.getMessage());
    }

    @OnMessage
    public void OnMessage(String msg){
        logger.info("收到消息:{}", msg);
    }

    public void sendMessage(String message) {
        for (WebSocketSync webSocketSync : webSocketSet){
//            logger.info("广播消息:{}",message);
            try {
                webSocketSync.session.getBasicRemote().sendText(message);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }}
}

客户端API

var ws = new WebSocket(“ws://[IP或域名]:[server端口]/websocket”); 
    ws.onopen = function(){
        ws.send("Test!");
    };
    ws.onmessage = function(evt){
        console.log(evt.data);
        ws.close();
    };
    ws.onclose = function(evt){
        console.log("WebSocketClosed!");
    };
    ws.onerror = function(evt){
        console.log("WebSocketError!");
    };

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值