-
Notifications
You must be signed in to change notification settings - Fork 223
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
設計多 backend 支援,同時支援 python 和 node.js #40
Comments
這部份是不是可以再獨立出來變成新的 sub-module? |
@david50407 之前跟 @PCMan 有討論過,的確是會更改 pipe name ,藉由 目前比較麻煩的是 PIMETextService 需要 ex.
|
如果是依據不同的 backend 來管理各自的輸入法清單呢?
然後 |
目前有個初步想法是這樣 |
這樣的好處是,現有的 server code 完全不用改,ime modules 也不用改 |
那 PIMELauncher 要怎麼知道不同的 backend 要怎麼啓動呢? |
backends 數量不可能太多的,直接寫死就可以了吧! 安裝程式自帶一份 python 和 node.js 就行了 |
應該是說,到時候說不定會有其他的 backend 實作也想使用 PIME 這麼一套框架而不想要跟 python 或 node 的 backend 一起包,是不是應該把 Client 與 PIMELauncher 的部分抽出來變成一個可以另外安裝的共用元件。(把 PIME 當成是一套框架的話這樣做應該比較合適?做為無內建 backend 與輸入法的 framework) 這樣子使用者安裝的時候也可以自己決定要安裝的 backend,輸入法也可以設計成一個一個的套件讓使用者自己下載安裝(或是安裝程式協助安裝),還可以建立一個 backend 與輸入法的 Hub 讓大家可以在上面交換各自的方案,當然我可能想得太遠了覺得 PIME 太強大就是了 XDDDD |
目前我腦中的計畫,也是希望可以未來可以做到不同輸入法分開安裝,甚至直接從網站下載 |
@jessy1092 @KenLuoTW
即將會做的修改 (開發中):
以上請參考 |
@jessy1092 我之前只想說讓 C++ code 越少越好,只做 thin wrapper,剩下都丟去 server 做,但是其實把 TSF 內部的邏輯 expose 給 server 反而會讓 server 變複雜,所以就把這塊細節藏進 C++ 做了。 |
剛完成了「初步」的多 backend 支援,為此現在的 ipc 機制有如下不相容的修改
Node.js server 部份需要做的修改:
這次是底層 IPC 機制和架構的改變,@KenLuoTW @lyenliang 你們的倉頡模組部份基本上不受到影響,我測試過還是可用的。 Cheers! |
@jessy1092 舉一個實例你可能比較知道如何接上 node.js:
目前架構是這樣運作,node.js 應該很容易可以整合進來了 |
現在的架構除錯更容易,PIMELauncher 不再一直重起 server,只有在 client 連線失敗,要求重起的時候才會重起。所以可以 kill 掉 server,然後執行開發版的來測試,此時可以接著繼續輸入文字,client 會直接連上新啟動的 server |
Node Version: v6.3.0 NIME repo: https://github.com/EasyIME/NIME
可能可以在 libpipe 實做,讓連接 pipe 前先連到 PIMELauncher,確保對應的 server daemon 已經啟動,然後才連接真正的 pipe
The text was updated successfully, but these errors were encountered: