sync.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. function open_same_leader() {
  2. var win = window.open('', '', '')
  3. win.opener = null
  4. win.document.write(`
  5. <!DOCTYPE html>
  6. <html lang="en">
  7. <head>
  8. <meta charset="UTF-8" />
  9. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  10. <title>主持人</title>
  11. <style>
  12. html,
  13. body {
  14. width: 100%;
  15. height: 100%;
  16. margin: 0;
  17. overflow: hidden;
  18. }
  19. .scene {
  20. width: 100%;
  21. height: 100%;
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <div id="scene" class="scene"></div>
  27. <script src="./libs/socket.io.min.v4.msgpack.js"></script>
  28. <script src="//4dkk.4dage.com/v4/www/sdk/kankan-sdk-deps.js?v=4.0.67"></script>
  29. <script src="//4dkk.4dage.com/v4/www/sdk/kankan-sdk.js?v=4.0.67"></script>
  30. <script>
  31. function createSocket(config) {
  32. return io('wss://test-socket.4dkankan.com', {
  33. path: '/fsl-node',
  34. query: {
  35. role: config.role,
  36. roomId: 'test-room',
  37. userId: Date.now().toString(),
  38. sceneNum: 't-YhBCzQr',
  39. userLimitNum: 30,
  40. from: 0,
  41. },
  42. })
  43. }
  44. var socket1 = createSocket({ role: 'leader' })
  45. var kankan1 = new KanKan({
  46. dom: '#scene',
  47. num: 't-YhBCzQr',
  48. })
  49. kankan1.render()
  50. socket1.onAny((event, data) => {
  51. if(event == 'webSyncAction'){
  52. kankan1.Broadcast.SameScreen.receive(data)
  53. }
  54. })
  55. kankan1.Broadcast.SameScreen.on('data', data => {
  56. socket1.emit('webSyncAction',data)
  57. })
  58. kankan1.Broadcast.SameScreen.start()
  59. </script>
  60. </body>
  61. </html>`)
  62. win.document.close()
  63. }
  64. function open_same_customer() {
  65. var win = window.open('', '', '')
  66. win.opener = null
  67. win.document.write(`
  68. <!DOCTYPE html>
  69. <html lang="en">
  70. <head>
  71. <meta charset="UTF-8" />
  72. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  73. <title>客户</title>
  74. <style>
  75. html,
  76. body {
  77. width: 100%;
  78. height: 100%;
  79. margin: 0;
  80. overflow: hidden;
  81. }
  82. .scene {
  83. width: 100%;
  84. height: 100%;
  85. }
  86. </style>
  87. </head>
  88. <body>
  89. <div id="scene" class="scene"></div>
  90. <script src="./libs/socket.io.min.v4.msgpack.js"></script>
  91. <script src="//4dkk.4dage.com/v4/www/sdk/kankan-sdk-deps.js?v=4.0.67"></script>
  92. <script src="//4dkk.4dage.com/v4/www/sdk/kankan-sdk.js?v=4.0.67"></script>
  93. <script>
  94. function createSocket(config) {
  95. return io('wss://test-socket.4dkankan.com', {
  96. path: '/fsl-node',
  97. query: {
  98. role: config.role,
  99. roomId: 'test-room',
  100. userId: Date.now().toString(),
  101. sceneNum: 't-YhBCzQr',
  102. userLimitNum: 30,
  103. from: 0,
  104. },
  105. })
  106. }
  107. var socket1 = createSocket({ role: 'customer' })
  108. var kankan1 = new KanKan({
  109. dom: '#scene',
  110. num: 't-YhBCzQr',
  111. })
  112. kankan1.render()
  113. socket1.onAny((event, data) => {
  114. if(event == 'webSyncAction'){
  115. kankan1.Broadcast.SameScreen.receive(data)
  116. }
  117. })
  118. kankan1.Broadcast.SameScreen.on('data', data => {
  119. socket1.emit('webSyncAction',data)
  120. })
  121. kankan1.Broadcast.SameScreen.start()
  122. </script>
  123. </body>
  124. </html>`)
  125. win.document.close()
  126. }