websocket.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. $(document).ready(function() {
  2. connect();
  3. });
  4. var stompClient = null;
  5. function setConnected(connected) {
  6. $("#connect").prop("disabled", connected);
  7. $("#disconnect").prop("disabled", !connected);
  8. if (connected) {
  9. $("#conversation").show();
  10. } else {
  11. $("#conversation").hide();
  12. }
  13. $("#greetings").html("");
  14. }
  15. function connect() {
  16. let socket = new SockJS("/gs-guide-websocket");
  17. stompClient = Stomp.over(socket);
  18. stompClient.debug = null;
  19. stompClient.connect({}, function(frame) {
  20. setConnected(true);
  21. //console.log("Connected: " + frame);
  22. stompClient.subscribe("/topic/greetings", function(greeting) {
  23. showGreeting(JSON.parse(greeting.body).content);
  24. });
  25. });
  26. }
  27. function disconnect() {
  28. if (stompClient !== null) {
  29. stompClient.disconnect();
  30. }
  31. setConnected(false);
  32. //console.log("Disconnected");
  33. }
  34. function sendName() {
  35. stompClient.send("/app/hello", {}, JSON.stringify({ name: $("#name").val() }));
  36. }
  37. function showGreeting(message) {
  38. $("#greetings").append("<tr><td>" + message + "</td></tr>");
  39. }
  40. $(function() {
  41. $("form").on("submit", function(e) {
  42. e.preventDefault();
  43. });
  44. $("#connect").click(function() {
  45. connect();
  46. });
  47. $("#disconnect").click(function() {
  48. disconnect();
  49. });
  50. $("#send").click(function() {
  51. sendName();
  52. });
  53. });