nodejs中,如何使socket.io同时启用http和https协议?
Socket.io是NodeJS中常用的websocket通信服务端组件。
通常可以绑定一个http或https服务。代码如:
const server = require('http').createServer();
const io = require('socket.io')(server);
但此种方式,有个很大的弊端:
只绑定了http或https中的一种,前端访问不支持双协议,如果绑定的是http,则只能http访问,如果绑定的是https,只能https访问。
支持双协议访问,才是理想状态。
实现方式是:使用socket.io的attach方法,代码如下:
var io_server = require('socket.io');
var io = new io_server();
io.attach(admin_http_server);
io.attach(admin_https_server);
admin_http_server、admin_https_server是用require("http").createServer(admin_app).listen方式建立的http和https服务器;admin_app是require('express')();
以上是nodejs代码,如果想对js代码加密,还可以使用JShaman平台,可以将js代码进行混淆加密。