2017-08-08 14 views
0

にわたり発光しませ発する私は、通常のsocket.ioを設定している:socket.ioは、すべてのクライアントがSSL

クライアント:

import io from 'socket.io-client' 
const socket = io() 
socket.on('connect',() => { 
    console.log('connected') 
    socket.emit('message', 'I have connected') 
}) 
socket.on('message', (msg) => console.log(msg)) 

サーバー:何らかの理由に放出するために

import socket from 'socket.io' 
const io = socket(/* httpsServer */) 
io.on('connection', (socket) => { 
    console.log('new connection') 
    socket.on('message', (msg) => console.log(msg)) 
    socket.emit('message', 'This works!') 
    io.sockets.emit('message', `This doesn't!`) 
}) 

httpを介しては完全に動作しますが、httpsでは動作しません。 https経由でio.sockets.emitが動作していないようです。何か不足していますか?

+0

ファイルを確認します.HTTPリンクではなくhttpリンクを持つファイルがあると、混在したコンテンツエラーが発生します。 SSL/HTTPSを使用している場合は、ページ上でhttpファイルとhttpsファイルの両方を使用することはできません。続きを読む:https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content/How_to_fix_website_with_mixed_content – Jer

+0

@JerすべてSSLです。これは、あなたが1つのソケットに放射するときに機能します。名前空間の問題かもしれませんか? – Simon

+0

コンソールにエラーがありますか?名前空間の問題になるかもしれませんが、私はそれについては分かりません。 – Jer

答えて

0

に同じソケットサーバーモジュールが取り付けられていないことを確認してください。httpServerhttpsServerです。

モジュールにソケットサーバーをラップし、最初にhttpsサーバーに接続してからhttpサーバーに接続しました。このため、単一のソケットが接続された後に、すべてのソケットがhttpソケットのみに送信しようとしていたためです。

関連する問題