socket.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import Cookies from 'js-cookie'
  2. var websock = null;
  3. var global_callback = null;
  4. var serverPort = '10012'; //webSocket连接端口
  5. function getWebIP(){
  6. var curIP = '192.168.31.138'//window.location.hostname;
  7. return curIP;
  8. }
  9. function initWebSocket(){ //初始化weosocket
  10. //ws地址
  11. var wsuri = 'ws://' + getWebIP() + ':' + serverPort + '/websocket/' + Cookies.get('username')
  12. if ("WebSocket" in window) {
  13. websock = new WebSocket(wsuri);
  14. websock.onmessage = function(e) {
  15. websocketonmessage(e);
  16. }
  17. websock.onclose = function(e) {
  18. websocketclose(e);
  19. }
  20. websock.onopen = function() {
  21. websocketOpen();
  22. }
  23. }
  24. //连接发生错误的回调方法
  25. websock.onerror = function () {
  26. console.log("WebSocket连接发生错误");
  27. }
  28. }
  29. // 实际调用的方法
  30. function sendSock(agentData,callback){
  31. global_callback = callback;
  32. if (websock.readyState === websock.OPEN) {
  33. //若是ws开启状态
  34. websocketsend(agentData)
  35. }else if (websock.readyState === websock.CONNECTING) {
  36. // 若是 正在开启状态,则等待1s后重新调用
  37. setTimeout(function () {
  38. sendSock(agentData,callback);
  39. }, 1000);
  40. }else {
  41. // 若未开启 ,则等待1s后重新调用
  42. setTimeout(function () {
  43. sendSock(agentData,callback);
  44. }, 1000);
  45. }
  46. }
  47. //数据接收
  48. function websocketonmessage(e){
  49. console.log(e.data);
  50. }
  51. //数据发送
  52. function websocketsend(agentData){
  53. websock.send(JSON.stringify(agentData));
  54. }
  55. //关闭
  56. function websocketclose(e){
  57. console.log("connection closed (" + e.code + ")");
  58. }
  59. function websocketOpen(e){
  60. console.log("连接成功");
  61. }
  62. export{sendSock,initWebSocket}