tomcat支持的websocket服务
tomcat支持的websocket服务
祁达方 发表于2年前
tomcat支持的websocket服务
  • 发表于 2年前
  • 阅读 479
  • 收藏 7
  • 点赞 0
  • 评论 0

【腾讯云】如何购买服务器最划算?>>>   

首发:个人博客

在tomcat7之后的版本,写个websocket服务程序非常容易——
如以下代码所示,当客户端建立了一个连接并发送了一些什么内容到服务器,服务器将每隔两秒返回一个字符串“world”。
之所以演示每两秒返回一次是为了说明这是长连接而不是短连接。

import java.io.IOException;

import javax.websocket.OnMessage;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;

@ServerEndpoint("/test")
public class MyTest {

    @OnMessage
    public void onMessage(String message, Session session) 
        throws IOException, InterruptedException {
        System.out.println("客户端说:" + message);
        
        while(true){
            session.getBasicRemote().sendText("world");
            Thread.sleep(2000);
        }
    }
    
}

网页只需要这样写:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Hello WebSocket</title>
</head>
<body>
    <div id="content"></div>
    <button onclick="sayHello()">打招呼</button>

    <script type="text/javascript">
        var webSocket = 
            new WebSocket('ws://localhost:8080/dyna/test');

        webSocket.onerror = function(event) {
            onError(event)
        };

        webSocket.onopen = function(event) {
            onOpen(event)
        };

        webSocket.onmessage = function(event) {
            onMessage(event)
        };

        function onMessage(event) {
            document.getElementById('content').innerHTML += '<br />服务器说:' + event.data;
        }

        function onOpen(event) {
            document.getElementById('content').innerHTML = '连接成功';
        }

        function onError(event) {
            document.getElementById('content').innerHTML = '出现错误';
        }

        function sayHello() {
            webSocket.send('hello');
            return false;
        }
    </script>
</body>
</html>

调试的时候发现tomcat7的支持不是特别好,
在eclipse里添加server然后在上面跑项目,不支持websocket;
用在server.xml里添项目的方式,也不支持websocket。

所以换成tomcat8,在eclipse里添加server然后跑项目,websocket也好使。
这样调试就很方便了。


TODO:
1.maven的tomcat7:run个别项目出现奇怪的问题;maven集成tomcat8的实验有时间做做
2.spring4对websocket的支持怎么试都不成功,有时间攻克它。
3.把今天学的即使通讯技术与websocket结合,做网页版qq之类的demo。

长期欢迎项目合作机会介绍,项目收入10%用于酬谢介绍人。新浪微博:@冷镜,QQ:908789432。


共有 人打赏支持
粉丝 9
博文 41
码字总数 51226
×
祁达方
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: