继上篇文章 AspNetCore Web API专案使用SignalR之用法,这次要在Vue专案里使用SignalR来做后续的动作

首先在Vue3专案里下命令安装:

npm install @microsoft/signalr

引用@microsoft/signalr

import * as signalR from '@microsoft/signalr'

接著写function如下:

        /**
         * 从SignalR通道接收讯息
         */
        receiveFromSignalR() {
            let connection = new signalR.HubConnectionBuilder()
                .withUrl(`${window._config.webApi_URL}/windowsServiceHub`)
                .build()

            try {
                connection.start()
                console.log('signalR connected')

                connection.on('SendWindowsServiceStatus', (message) => {
                    console.log('SendWindowsServiceStatus', message)

                    if (message === true || message === 'true') {
                        this.windowsServiceStatus = true
                    } else {
                        console.log(`windowsServiceStatus close`)
                        this.windowsServiceStatus = false
                    }
                })
            } catch (error) {
                console.log('signalR error', error)
            }
        }

然后等来自windows service或windows console专案等等的触发即可达到双向沟通,参阅 AspNetCore Web API专案使用SignalR之用法