socket.io发出的所有客户端不发光时通过SSL

socket.io发出的所有客户端不发光时通过SSL

问题描述:

我有正常的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链接而不是https的文件,它会给你一个混合的内容错误。如果您使用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。它在你发射到一个套接字时起作用,而不是当你发射到所有套接字时。它可能是一个命名空间问题? – Simon

+0

控制台中是否有错误?它可能是一个命名空间问题,但我不确定。 – Jer

检查相同的套接字服务器模块未安装到均为httpServerhttpsServer

我将套接字服务器封装在一个模块中,并首先连接到https服务器,然后连接到http服务器。这就是为什么单个套接字会连接但是然后发送给所有人只是试图发送到http套接字。