套接字连接在收到握手响应之前closures
我已经从源代码编写套接字
我的代码看起来像这样。
var port = 8081; var app = require('http').createServer(); var io = require('socket.io')(app); app.listen(port); io.on('connection', function (socket) { console.log("New user connected."); socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); console.log("server listening on: " + port);
但是当我在这里testing它(ws:// localhost:8081)。 我收到错误:未定义DISCONNECTED
在控制台中出现错误:
WebSocket connection to 'ws://localhost:8081/?encoding=text' failed: Connection closed before receiving a handshake response
您需要使用socket.io客户端库,从这里获取它,或者从您的页面引用CDN,如下所示:
<script src="https://cdn.socket.io/socket.io-1.3.7.js"></script>
此外,无论何时启动一个socket.io服务器,socket.io都将从http://<your-server-address>/socket.io/socket.io.js
。 你应该能够使用这个简单的页面来testing你的服务器:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="http://localhost:8081/socket.io/socket.io.js"></script> <script> var socket = io('http://localhost:8081/'); socket.on('news', function (data) { console.log(data); socket.emit('my other event', { my: 'data' }); }); </script> </head> <body> </body> </html>
你可以阅读更多关于为什么你不能在这个github问题上从websocket.org网站连接。