目前的遠程控制軟件的整個市場, 競爭已經非常白熱化了, 有非常多的軟件例如: 像操作復雜的Teamviewer, 國產傳統的向日葵遠程控制等等。基本上優化都是針對 Windows, 主要是因為 Windows 可能占相應公司最大的用戶比重的原因, 所以讓 MacOS 都成為了二等公民。
在這, 還有幾個原因。首先,是 Windows 本身硬件環境比較復雜, 要針對優化的硬件更加多, 為了更好的體驗, 需要針對不同的顯卡如 Intel 與英偉達來做優化, 如果給硬件顯示的性能用上, 可以減少 15ms 的端到端延時(end-to-end delay) 通過屏幕編碼技術上的優化, 才能達成更低的端到端延時。其次, MacOS 在很多開發者看來更難開發, 比如 Cocoa 的這種技術, 還有 Object C 都在國內的開發者上不流行。
界面
莎士比亞說的: “一千個觀眾眼中有一千個哈姆雷特”。對于界面, 用戶可是眾口難調, MacOS 在這方面可能是做得最好, 界面 UI , 字體, 配色, 優化到基本上大家都滿意。但遠程控制軟件, 很多還是優化不充足。 比如現在流行的黑暗模式(DarkMode), 又叫深色模式, 相關的遠程控制軟件就很少支持。這個在 MacOS 上如果能根據自動優化實現很棒的效果, 在晚上使用更加能讓遠程辦公的人員沉浸進去。
想象一下: 晚上, 關掉家中房間的主燈, 然后打開一個臺燈, 光線調暗指向自己工作的臺面, 給操作系統變成深色模式. 然后所有軟件也跟著變成了這個深色模式, 敲擊著機械鍵盤, 是不是一下就來了工作的氣氛. 但如果點擊這個遠程控制的軟件, 跳出來是個白色, 是不是感覺一下就沒了^_^.
AppStore
蘋果對于軟件的安全要求很高, 在 MacOS 中有個名為 Gatekeeper 的功能, 它會讓我們在分發應用程序的過程會變麻煩。因為 MacOS 中的 Gatekeeper 會不斷檢查您正在運行的應用程序,確保其中沒有任何可疑內容。您是否曾經啟動過一個應用,結果卻突然收到一條警告告訴您,該應用來自身份不明的開發者,那是由于 Gatekeeper 的功能在生效。
您可能已經注意到并非所有應用程序都會導致此警報彈出。它通常發生在不太受歡迎或非原生的應用程序中。沒有彈出警報是因為我們的軟件做了蘋果所要求的簽名和上傳到蘋果服務器那邊進行公證并分發, 所以在 AppStore 中可以直接搜索到我們的軟件。
我們遠程控制軟件對于安全在開發時更加需要注意, 因為大家對于自己的隱私都非常注意。所以我們使用的點對點加密, 它的方式類似于 Telegram 的點對點加密,發信息之前就已經通過公鑰對信息進行加密了。
窗口
我們注意到, 在 MacOS 的相關操作系統中, 目前基本的遠程控制軟件, 都有個問題。 就是通常我們為了更加方便的遠程操作對方的時候, 我們會使用遠程協助軟件的全屏顯示功能. 但現在的類似軟件都有個問題, 我們鼠標上移的時候, 想喚出操作欄的, 這時會出現系統的狀態欄和遠程協助軟件的操作欄同時彈出的問題, 這時操作起來就很痛苦,就像下圖一樣, 彈出二個欄, 系統的狀態欄與操作欄.
秒點的 geelevel 遠控, 針對這種情況做了特殊處理, 當我們點擊全屏的時候, 我們會自動的檢查系統的狀態欄, 讓他們與我們的操作欄不會同時彈出. 退出我們軟件的全屏模式時, 這個功能消失. 接下來秒點還設計了一種新的模式來做操作欄, 大家可以小小的期待一下.
鼠標指針
當主控端畫面窗口的大小進行了縮放, 通常在 Windows 上一定會這樣, 并且蘋果的 MacOS 在 4k 屏幕上會給 4 個象素合成一個來顯示,這時遠程控制會出現光標很大或很小的情況,與畫面不成比例,嚴重影響遠控的使用體驗, 并且也影響點擊的精準程度。這對于設計師, 或對于使用遠程控制軟件, 進行遠程辦公的人員, 有致命的打擊.如下, 同類友商在 MacOS 下的效果.
被控制主機鼠標顯示大小
發起控制的一方顯示的大小
所以主控端的光標大小需要做適配處理。秒點遠程 geelevel 會當主控端畫面窗口進行縮放的時候,獲取當前窗口的大小,與畫面原始分辨率的大小進行比較,計算出縮放比例,然后根據縮放比例改變本地光標的大小。
當被控端改變了分辨率的時候,我們要將分辨率變化的消息通知到主控端,主控端收到消息后,將分辨率與畫面渲染窗口的大小進行比較,計算出縮放比例,然后根據縮放比例改變本地光標的大小。
關于鼠標, 我們有平滑處理, 還有 FEC 之類的技術機制, 以后的文章中在詳細介紹.