Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.60 KB | None | 0 0
  1. import io from 'socket.io-client';
  2. import uuidV1 from 'uuid/v1';
  3.  
  4. const uuid = uuidV1();
  5.  
  6. const socket = io('ws://127.0.0.1:8080', {
  7. transports: ['websocket'],
  8. query: {
  9. token: 'qi7r0v9plf8163br4erhmuno65', // mock session id for testing purpose
  10. uuid
  11. }
  12. });
  13.  
  14. // Client for testing purpose
  15.  
  16. socket.once('connect', () => {
  17. console.log(`Client connected. Connection ID: ${socket.id}`);
  18.  
  19. // Simulating client request
  20.  
  21. document.getElementById('request-btn').addEventListener('click', () => {
  22. fetch('/api/message',
  23. {
  24. method: 'POST',
  25. headers: {
  26. 'Accept': 'application/json',
  27. 'Content-Type': 'application/json'
  28. },
  29. body: JSON.stringify({
  30. connectionId: socket.id,
  31. message: 'Hello World!!!',
  32. date: new Date()
  33. })
  34. })
  35. .then(function(req) {
  36. return req.json();
  37. })
  38. .catch(function(error) {
  39. console.error(error);
  40. });
  41. return false;
  42. });
  43.  
  44. // Server reply for client request
  45.  
  46. socket.on('message', (msg) => {
  47. let node = document.createElement('li');
  48. let textnode = document.createTextNode(
  49. `MESSAGE RECEIVED:
  50. Connection ID: ${msg.connectionId}
  51. Message text: ${msg.message}
  52. Date: ${msg.date}`
  53. );
  54. node.appendChild(textnode);
  55. document.getElementById('response-list').appendChild(node);
  56. });
  57.  
  58. // Simulating confirmation delivery from client
  59.  
  60. document.getElementById('success-delivery-btn').addEventListener('click', () => {
  61. let timestamp = new Date().getUTCMilliseconds();
  62. let mockSessionId = `CatsFlyHigh${timestamp}MilesAboveSky`;
  63. socket.emit('successful-delivery',
  64. {
  65. sessionId: mockSessionId
  66. }
  67. );
  68. return false;
  69. });
  70.  
  71. // Response on successful delivery
  72.  
  73. socket.on('successful-delivery', (response) => {
  74. let node = document.createElement('li');
  75. let textnode = document.createTextNode(response.sessionId);
  76. node.appendChild(textnode);
  77. document.getElementById('success-list').appendChild(node);
  78. });
  79.  
  80. // Error handling
  81.  
  82. socket.on('error', (err) => {
  83. console.error(err);
  84. });
  85. });
  86.  
  87. // Reconnect message
  88.  
  89. socket.on('reconnect', () => {
  90. console.log(`Server reconnected. New connection ID: ${socket.id} `);
  91. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement