私はExpress/Node.jsアプリケーションでバックエンドwebsocketサーバー用にSocket.ioを使用しています。サーバー側のコードは次のようになります。フロントエンドのネイティブwebsocketクライアントをNode.js Socket.ioサーバーに接続
const socket = new WebSocket('ws://localhost:3001');
socket.onopen =() => {
socket.send('I am a client and I am listening');
socket.onmessage = (event) => {
console.log('Client received message: ', event);
};
socket.onclose = (event) => {
console.log('Client socket has closed: ', event);
}
};
のWebSocket:(同じNode.jsのサーバー上でホストされている)フロントエンドでは
const socketIo = io(server);
socketIo.on('connection', (client) => {
console.log('client connected');
client.emit('test', { test: '123' });
client.on('client-test', (data) => {
console.log('from client: ', data);
});
});
、私はネイティブWebSocketをを使用しています、私はこれを持っています接続は決して確立されていないようです(私はサーバーから何も記録されません)。さらに、私はクライアント側のサーバーから送信されたメッセージ(つまり、 'test'メッセージ)を受け取る方法も、クライアントからサーバー上のメッセージを受け入れる方法もわかりません(つまり、サーバーは一部のクライアント「テスト」メッセージ)。
フロントエンドのネイティブWebソケットがバックエンドのSocket.ioと互換性がないのだろうか。フロントエンドでSocket.ioを使用する際にはセットアップ作業をしていましたが、可能であればフロントエンドのネイティブWebソケットで作業したいと考えています。
また、非JS言語を使用している人は、どのようにして接続する必要がありますか? – BradLaney
@BradLaney彼らはいくつかの他の言語のクライアントを持っています:[Github](https://github.com/socketio?utf8=%E2%9C%93&q=socket.io-client&type=&language=)また、あなたの選択した言語に対応しています。 –