如何在组件中使用动态套接字URL?

伊利亚

如何将动态套接字与不同的URL /命名空间一起使用?

我首先尝试使用vue-socket.io

main.js

import VueSocketio from 'vue-socket.io';
Vue.use(VueSocketio, 'http://localhost:8091/notification');

我想动态更改该URL,但没有找到一种方法。


我也尝试在组件中使用socket.io-client

零件:

import io from 'socket.io-client';
const adminSocket = io('http://localhost:8091/notification');

但是它一直都在等待。

ir

您可以使用socket.io-client处理VueJs中的动态套接字

这里有个例子:

上级:

<MyComponent server="http://127.0.0.1:8000/"></MyComponent>
<MyComponent server="http://127.0.0.1:8000/namespaced-socket"></MyComponent>
<MyComponent :server="dynamicServer"></MyComponent>

//...

components: {
  MyComponent
},

子组件:

import SocketIO from 'socket.io-client'

//...

export default {
  name: 'MyComponent',
  data () {
    return {
      socket: null
    }
  },   
  props: {
    server: {
      type: String,
      required: true
    }
  },   
  methods: {
    newSocket () {
      let socket = SocketIO(this.$props.server, { origins: 'http://localhost:*/* http://127.0.0.1:*/*' })
      this.socket = socket
      this.socket.on('data', (data) => { // your server emits, ready, data, etc...
        console.log('data')
        // do whatever you want with `data`
      })
    }
  },    
  mounted () {
    this.newSocket()
  }
}

在您的父组件(或视图)中,您可以创建一种在模板中动态添加子组件的方法,并在其中添加新的套接字(如果服务器是动态更改的,则应使用其他专用方法在子组件中对其进行处理this.newSocket()) 。

跨域可能有问题,这就是我添加{ origins: 'http://localhost:*/* http://127.0.0.1:*/*' }(例如)的原因。

注意:

vue-socket.io仅允许创建一个实例。

确保它也正常工作,我个人将其用于某些项目。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在ReactJS中使用受控组件实现动态表单?

如何在JavaScript \ HTML中使用套接字?

如何在套接字编程中使用select和FD_SET?

如何在Python中使用套接字作为上下文管理器?

如何在Python中使用套接字作为上下文管理器?

如何在Python中使用原始套接字?

如何在Android中使用UDP套接字?

如何在z / OS上的C ++中使用C套接字API

Swift如何在iOS中使用UDP套接字?

Socket.IO-如何在socket.io 1.3.6中使用socketID关闭套接字?

如何在Python中使用套接字响应SSDP搜索?

如何在动态组件中使用反应形式

如何在docker中使用unix套接字将nginx连接到php-fpm

如何在Erlang或Elixir中使用ZeroMQ实现无阻塞套接字接收?

如何在android中使用套接字从REST Api获取JSON响应以动态膨胀recyclerview?

如何在python中使用pickle序列化套接字对象

如何在Kusto中使用动态关键字

如何在Chrome中使用本机WebSocket库重新连接套接字

如何在Python中使用套接字创建通道

如何在Python中使用管道时关闭套接字连接

如何在实时多人游戏中使用网络套接字?

如何在Python和子进程中使用套接字?

如何在Java中使用相同的套接字连接执行多个HTTP请求?

如何在没有套接字的Android中使用TCP客户端?

如何在套接字上使用 setTimeout?

我如何在 Flutter web 中使用套接字

如何在c中使用套接字发送文件

如何在 localStorage 上存储套接字/在 vanilla ReactJS 上的不同组件上使用套接字,以便在不同组件 socket.io 中使用?

如何在 python 的套接字中使用线程?