当前位置:   article > 正文

websocket 无法连接 onerror_websocket onerror

websocket onerror

在写ws时一定要加上项目名称 byteslounge 在加上websocket的路径名websocket才能请求的到 例如:

ws://localhost:8080/byteslounge/websocket

实例:

1. WebSocket服务器端

让我们定义一个 Java EE websocket服务器端:

WebSocketTest.java

  1. package com.byteslounge.websockets;
  2. import java.io.IOException;
  3. import javax.websocket.OnClose;
  4. import javax.websocket.OnMessage;
  5. import javax.websocket.OnOpen;
  6. import javax.websocket.Session;
  7. import javax.websocket.server.ServerEndpoint;
  8. @ServerEndpoint("/websocket")
  9. public class WebSocketTest {
  10. @OnMessage
  11. public void onMessage(String message, Session session)
  12. throws IOException, InterruptedException {
  13. // Print the client message for testing purposes
  14. System.out.println("Received: " + message);
  15. // Send the first message to the client
  16. session.getBasicRemote().sendText("This is the first server message");
  17. // Send 3 messages to the client every 5 seconds
  18. int sentMessages = 0;
  19. while(sentMessages < 3){
  20. Thread.sleep(5000);
  21. session.getBasicRemote().
  22. sendText("This is an intermediate server message. Count: "
  23. + sentMessages);
  24. sentMessages++;
  25. }
  26. // Send a final message to the client
  27. session.getBasicRemote().sendText("This is the last server message");
  28. }
  29. @OnOpen
  30. public void onOpen() {
  31. System.out.println("Client connected");
  32. }
  33. @OnClose
  34. public void onClose() {
  35. System.out.println("Connection closed");
  36. }
  37. }

你可能已经注意到我们从 javax.websocket包中引入了一些类。

@ServerEndpoint 注解是一个类层次的注解,它的功能主要是将目前的类定义成一个websocket服务器端。注解的值将被用于监听用户连接的终端访问URL地址。

onOpen 和 onClose 方法分别被@OnOpen@OnClose 所注解。这两个注解的作用不言自明:他们定义了当一个新用户连接和断开的时候所调用的方法。

onMessage 方法被@OnMessage所注解。这个注解定义了当服务器接收到客户端发送的消息时所调用的方法。注意:这个方法可能包含一个javax.websocket.Session可选参数(在我们的例子里就是session参数)。如果有这个参数,容器将会把当前发送消息客户端的连接Session注入进去

本例中我们仅仅是将客户端消息内容打印出来,然后首先我们将发送一条开始消息,之后间隔5秒向客户端发送1条测试消息,共发送3次,最后向客户端发送最后一条结束消息。

2. 客户端

现在我们要来写websocket测试应用的客户端:

page.html

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Testing websockets</title>
  5. </head>
  6. <body>
  7. <div>
  8. <input type="submit" value="Start" οnclick="start()" />
  9. </div>
  10. <div id="messages"></div>
  11. <script type="text/javascript">
  12. var webSocket =
  13. new WebSocket('ws://localhost:8080/byteslounge/websocket');
  14. webSocket.onerror = function(event) {
  15. onError(event)
  16. };
  17. webSocket.onopen = function(event) {
  18. onOpen(event)
  19. };
  20. webSocket.onmessage = function(event) {
  21. onMessage(event)
  22. };
  23. function onMessage(event) {
  24. document.getElementById('messages').innerHTML
  25. += '<br />' + event.data;
  26. }
  27. function onOpen(event) {
  28. document.getElementById('messages').innerHTML
  29. = 'Connection established';
  30. }
  31. function onError(event) {
  32. alert(event.data);
  33. }
  34. function start() {
  35. webSocket.send('hello');
  36. return false;
  37. }
  38. </script>
  39. </body>
  40. </html>

这是一个简单的页面,包含有JavaScript代码,这些代码创建了一个websocket连接到websocket服务器端。

onOpen 我们创建一个连接到服务器的连接时将会调用此方法。

onError 当客户端-服务器通信发生错误时将会调用此方法。

onMessage 当从服务器接收到一个消息时将会调用此方法。在我们的例子中,我们只是将从服务器获得的消息添加到DOM。

我们连接到websocket 服务器端,使用构造函数 new WebSocket() 而且传之以端点URL:

ws://localhost:8080/byteslounge/websocket



转载地址:http://www.oschina.net/translate/java-ee-html5-websocket-example  点击打开链接

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/242063
推荐阅读
相关标签
  

闽ICP备14008679号