0
HTTPSウェブサイトで個人用のユーザスクリプトを有効にしました。ユーザースクリプトはSocket.ioクライアントAPIを使用してPCのNode.js TCPサーバーに接続しますSocket.ioブラウザクライアントをローカルNode.jsネットサーバに接続する
サーバーはクライアントがサーバーに接続していることに気づきましたが、クライアントは接続に気づきません
ブラウザのコンソールからこのエラーを受け取り、リソースの読み込みに失敗しました:ネット:: ERR_TIMED_OUT
私はこのエラーを解決する方法がわからないが、私はそれがで起因する何かを持っていると仮定していますSocket.ioとNetが互いに互換性がないか、Webサイトで接続が許可されていない
はここしかし、WebSocketをし、HTTPプロトコルが利用可能です、私のクライアントコード
socket.on('connect', function() {
console.log('CONNECTED TO SERVER');
socket.on('message', function(msg) {
messageReceive(msg);
});
setInterval(runRoutine, 1000);
});
ブラウザから直接TCPソケットを使用することはできません私のサーバコード
var net = require('net');
var clients = [];
var port = 8841;
net.createServer(function(socket) {
socket.name = socket.remoteAddress + ':' + socket.remotePort;
clients.push(socket);
broadcast(socket.name + " has connected to the server", socket);
socket.on('message', function(data) {
broadcast(socket.name + "<>" + data, socket);
});
socket.on('end', function() {
clients.splice(clients.indexOf(socket), 1);
broadcast(socket.name + '<>disconnected', socket);
});
function broadcast(message, sender) {
console.log(message);
clients.forEach(function(client) {
if(client === sender) return;
//client.write(message);
});
}
}).listen(port);
console.log("Chat server running at port " + port);
これはできません。サーバー側の 'socket'はTCPソケットであり、socket.ioソケットではないため、' message_'イベントが発生しません。とにかくsocket.ioサーバーの代わりにTCPサーバーを使用しているのはなぜですか? – mscdex