我刚刚开始学习websockets,我得到一个奇怪的错误:
<script type="text/javascript"> window.onload = function(){ var service = new WebSocket("ws://localhost:8080/websocket/test"); service.onmessage = function(event){ alert("message"); } service.onopen = function(){ service.send("hello!"); } service.onclose = function(){ alert("closed"); } service.onerror = function(){ alert("error"); } service.send("test"); service.close(); } </script>
在线上:
service.send("test");
我明白了:
InvalidStateError: An attempt was made to use an object that is not,or is no longer,usable
我错过了重要的事吗?
解决方法
Once you’ve opened your connection,you can begin transmitting data to the server.
等待onopen事件!
window.onload = function() { var service = new WebSocket("wss://echo.websocket.org"); service.onmessage = function(event) { alert("onmessage event: "+event.data); } service.onopen = function() { service.send("test"); //Will work here! //^^^^^^^^^^^^^^^^^ service.send("hello!"); } service.onclose = function() { alert("closed"); } service.onerror = function() { alert("error"); } //Can't close while a connection is still being established. //service.close(); }