我正在将MEAN Stack应用程序部署到生产环境中,我有一个用于实时通知的套接字模块。但是,在检查www.example.com
中的错误时,我看到了此错误POST http://www.example.com/socket.io/?EIO=3&transport=polling&t=MgkPNGk 404 (Not Found)
当我尝试连接到localhost:4444
(这是我用于与服务器进行套接字通信的端口)时,我的代码可以按预期的方式工作。
但是,在生产中,我无法连接服务器和客户端。
我已经尝试过类似
private socket = io(window.location.hostname + ':4444')
private socket = io('http://www.example.com')
private socket = io('http://www.example.com:4444')
但是这些似乎都不起作用。我有什么想念的吗?我确定这只是一个语法错误,但是谁能给我提供一个实现此示例的示例?
//客户代码
import * as io from 'socket.io-client';
@Injectable({providedIn: 'root'})
export class SocketService
{
private socket = io(window.location.hostname)
// private socket = io('http://localhost:4444') <- this works in development and I cant find a solution to do it in production,
constructor(@Inject(DOCUMENT) private document,
private http: HttpClient){
console.log(window.location.hostname)
}
}
//服务器代码
var server = http.createServer(app);
var io = require('socket.io').listen(server);
var socketHelper = require('./helpers/socketHelper')(io)
server.listen(4444)