如题
前端vue项目 使用的是signalr
能否连接Websocket的服务端?
“Devil组”引证GPT后的撰写:
在 Vue 项目中使用 SignalR 客户端连接 WebSocket 服务端的方法与连接 SignalR 服务端基本相同,只是需要指定 WebSocket 的传输协议。下面是一个连接 WebSocket 服务端的示例代码:
import { HubConnectionBuilder, HttpTransportType } from '@microsoft/signalr';
const connection = new HubConnectionBuilder()
.withUrl('http://localhost:5000/hub', {
transport: HttpTransportType.WebSockets,
})
.build();
connection.start()
.then(() => console.log('Connection started!'))
.catch(error => console.error(error));
其中,HttpTransportType.WebSockets 参数指定了使用 WebSocket 传输协议进行通信,http://localhost:5000/hub 是 WebSocket 服务端的 URL。你需要将该 URL 修改为你的 WebSocket 服务端的地址。
不知道你这个问题是否已经解决, 如果还没有解决的话:<template>
<el-button type="primary" @click="sendMessage">发送消息</el-button>
</template>
<script>
import webSocket from '@/api/evgis/webSocket'
export default {
name:"WebSocketTest",
data(){
return{
webSocketObject: null,
}
},
created() {
// webSocket.webSocketInit(process.env.VUE_APP_BASE_API.replace("http","ws")+"/evgis/todoStatus")
webSocket.webSocketInit('ws://127.0.0.1:8088/websocket') //初始化webSocket
// 按需进行绑定回调函数
webSocket.setOpenCallback(res=>{
console.log("连接建立成功",res);
})
webSocket.setMessageCallback(res=>{
// 在此处进行数据刷新操作即可实现数据发生改变时实时更新数据
console.log("接收到回信",res);
})
webSocket.setErrorCallback(res=>{
console.log("连接异常",res);
})
webSocket.setCloseCallback(res=>{
console.log("连接关闭",res);
})
},
methods:{
sendMessage(){
// 数据发生改变时给WebSocket发送消息,让其进行广播操作
webSocket.sendMessage();
}
}
}
</script>
<style>
</style>