准備學習html5,決定使用WebStorm作為IDE,在使用WebStorm進行調試或者LiveEdit功能時,和Chrome總是連接不上,WebStome中提示“Waiting for connection from JetBrains IDE Support extension for Chrome.Please ensure you have installed the extension or see Help. “,但是實際上Chrome中已經安裝JetBrains IDE Support extension並啟用。
研究了一下調試的原理是WebStorm內建了Web服務器,在WebStorm啟動的時候就會啟動,這是WebStorm6.0中新增的功能,Web服務器端口是63342,並且不能修改。所以當你新建了一個工程,假設叫myproject,那么在瀏覽器中就可以通過http://localhost:63342/myproject訪問。然后Chrome的JetBrains IDE Support擴展就是連接這個Web服務器,JetBrains IDE Support擴展的屬性中可以修改Web服務器地址和端口。
順着這個原理,發現WebStorm並沒有監聽63342端口,而是監聽了其他幾個端口,使用其中的一個綁定到0.0.0.0的TCP端口,驚喜的發現可以連接上了,在瀏覽器中也可以打開網站。真是不解為什么沒有監聽63342端口,而且這個監聽的端口每次啟動都會變化。這個功能做成這樣怎么樣用呢,每次都要先看看監聽哪個端口,唉。
后來發現WebStorm7.0已經可以設置這個端口了,不過還沒有正式發布,可見WebStorm6.0這個內建Web服務器功能還很雞肋啊。
附版本信息:
WebStorm 6.0.2 build 129.664
Java 7
Windows 7 64位
續:
后來安裝了WebStorm7.0 EAP 130.753,發現綁定62734以上的端口會報錯,如: “ChannelException: Failed to bind to: 0.0.0.0/0.0.0.0:62735: Failed to bind to: 0.0.0.0/0.0.0.0:62735”,綁定失敗時會隨機綁定一個端口,規律未知。綁定62734及以下的端口可以成功,但是會出現綁定2個端口,一個是設置的,另一個似乎是綁定失敗后隨機分配的。而且LiveEdit非常不穩定。