私は、socket.io によって WebSocket サーバーを実装できると考えました。私はこの非常に単純なコードを持っています:
// Require HTTP module (to start server) and Socket.IO
var http = require('http'), io = require('socket.io');
// start at port 8888
var server = http.createServer(function(req, res) {
res.writeHead(200,{'Content-Type': 'text\html'});
res.end('<h1>Welcome to the Notification Server</h1>');
});
server.listen(8888);
// Create Socket.io obj/pass to server
var socket = io.listen(server);
socket.on('connection', function(client) {
console.log('Successful Websocket connection!');
client.on('message', function(event) {
console.log("Received message from client", event);
});
client.on('disconnect', function() {
console.log('Client has disconnected');
});
});
サーバー上で次のメッセージを生成するいくつかの異なるテスト クライアントを試しました: debug - destroying non-socket.io upgrade
そのようなクライアントの試みの 1 つに、次のようなコードがあります。
<html>
<script type="text/javascript">
<!---
window.WebSocket = window.WebSocket || window.MozWebSocket;
var ws = new WebSocket("ws://dev.ourserver.com:8888");
ws.onopen = function() {
alert("Connected");
}
ws.onerror = function(error) {
alert("Error:"+error);
}
// -->
</script>
<body>
</body>
</html>
ページをロードするとすぐに、サーバーにデバッグ メッセージが表示されます。
このライブラリのポイントは、websocket プロトコルをサポートすることであり、websocket をサポートするクライアントはすべて接続できると思いました。
メッセージを文字通りに解釈すると、server.io が「非 socket.io」クライアントに接続していることを検出したことを示しているようです。これは、クライアントで socket.io を使用せずにこのサーバーに接続する方法がないということですか?