2014年1月10日 星期五

Google AppEngine : 雜記

二年前曾設計了一個可以多人玩的線上小遊戲,後來因為找不到合適的 socket server 而擱著,最近很認真的玩 Google 的服務,發現 Google AppEngine 的 Channel API 可以達到 socket 的功能,順手把一些 Google AppEngine 的問題記錄在這篇中,內容再陸續增加。


UnicodeDecodeError

換了台機器操作,原來可以跑的程式啟動不了,由 Launcher 中啟動服務時,出現「UnicodeDecodeError」。底下是作業的環境

  • OS : Windows 7
  • Python 2.7
  • Google AppEngine SDK release : 1.8.8

會出現這樣的訊息而無法正常啟動服務:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xbd in position 33: ordinal not in range(128)


可能是 Python 2.7 的問題,解決方法:

修改 python 目錄中的這個檔案「/Lib/mimetypes.py」



將所有的

except UnicodeEncodeError:

換成

except UnicodeError:


由 localhost 以外的 IP 來服務

Google AppEngine 預設只在 localhost 上啟動網頁服務,我們可以在 Google AppEngine Launcher 中,先打開某個 App 的「Application Settings」,然後在「Launch Settings」中的「Extra Command Line Flags」欄位中輸入類似下面的參數:

--host=192.168.2.100



這樣子,以上面的設定來說,當我們啟動 App 的服務時,就可以在「192.168.2.10」上來提供 App 的服務,方便由本機以外的機器連線測試。

這個參數在舊版中好像是「--address=192.168.2.10」


1 則留言:

 
© 2009. Design by Pocket