准备学习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非常不稳定。