Javascript Vue单文件组件内的信号器连接

Javascript Vue单文件组件内的信号器连接,javascript,vue.js,signalr,vue-component,quasar-framework,Javascript,Vue.js,Signalr,Vue Component,Quasar Framework,我试图制作一个信号器组件,但它似乎从未启动连接。我对这一切都很陌生,所以我想知道我做错了什么 我不确定这是因为连接没有被保留,还是有其他方法可以做到这一点 你的名字 消息 提交 名称:{{item.user} 消息:{{item.Message} const signalR=require(“@aspnet/signalR”) //从“类星体”导入{qscrollara} 导出默认值{ 名称:'SignalInCommingText', 数据(){ 返回{ 用户名:“”, 用户消息:“”

我试图制作一个信号器组件,但它似乎从未启动连接。我对这一切都很陌生,所以我想知道我做错了什么

我不确定这是因为连接没有被保留,还是有其他方法可以做到这一点


你的名字
消息
提交
  • 名称:{{item.user}
  • 消息:{{item.Message}
const signalR=require(“@aspnet/signalR”)
//从“类星体”导入{qscrollara}
导出默认值{
名称:'SignalInCommingText',
数据(){
返回{
用户名:“”,
用户消息:“”,
连接:“”,
信息:[]
}
},
组成部分:{
//克斯克罗拉区
},
方法:{
submitCard:函数(){
if(this.userName&&this.userMessage){
// ---------
//从客户端调用中心方法
// ---------
这个连接
.invoke('SendMessage',this.userName,this.userMessage)
.catch(函数(err){
返回console.error(err.toString())
})
this.userName=''
this.userMessage=“”
}
}
},
已创建:函数(){
// ---------
//连接到我们的中心
// ---------
this.connection=new signar.HubConnectionBuilder()
.withUrl('http://localhost:44382/chat')
.configureLogging(信号器.LogLevel.Information)
.build()
this.connection.start().catch(函数(err){
返回console.error(err.toString())
})
},
挂载:函数(){
// ---------
//从中心调用客户端方法
// ---------
var thisVue=this
thisVue.connection.on('ReceiveMessage',函数(用户,消息){
thisVue.messages.push({user,message})
})
}
}
当我发送消息时,我会收到以下信息:

错误:如果连接未处于“已连接”状态,则无法发送数据

任何帮助都将不胜感激

编辑:经过一段时间的测试,我发现我得到了一个连接…有点,只是谈判还没有结束

[2019-09-09T06:58:53.685Z]调试:启动轮毂连接

[2019-09-09T06:58:53.686Z]调试:启动与传输的连接 格式化“文本”

[2019-09-09T06:58:53.687Z]调试:发送协商请求:

发现问题,与Cors和HTTPS有关。现在可以用了。

前言:我对信号机一无所知

我认为问题在于,这里没有什么东西在等待建立联系。您可能需要添加某种“就绪”标志,并使用它来控制一些UI元素

比如说

数据:()=>({
用户名:“”,
用户消息:“”,
信息:[],
就绪:错误
}),
创建(){
this.connection=new signar.HubConnectionBuilder()
.withUrl('http://localhost:44382/chat')
.configureLogging(信号器.LogLevel.Information)
.build()
this.connection.start()。然后(()=>{
this.ready=true//在此处切换就绪标志
}).catch(错误=>{
console.error(err.toString())
})
}
在你的模板中,类似这样的东西


元素可以方便地一次禁用一组表单元素



您可能会注意到,我没有在
data()
函数中定义
connection
。这是因为它不是一个被动属性。

我不能保证这是问题的根本原因,但是
data()
不建议用于存储富对象(仅包含方法的非数据对象)。要继续我认为@acdcjunior所指的内容,看起来您不需要
这个.connection
是被动的,所以您不需要在
data()
中定义它。连接似乎没有启动。@MathiasChartier您的
servertimeoutinmillizes
属性设置为什么(默认值为30s)?您看到控制台中显示了任何错误吗?@MathiasChartier尝试将日志级别设置为
Debug
,而不是
Information
,似乎我正在连接。[2019-09-09T06:34:31.898Z]调试:发送协商请求:。但是,连接似乎没有启动。@MathiasChartier您是否已验证该服务正在
http://localhost:44382
您的浏览器是否可以访问?