【问题标题】:Socket.io how to implement a wss connection?Socket.io如何实现一个wss连接?
【发布时间】:2020-05-13 15:47:39
【问题描述】:

我正在使用 socket.io 在 node.js 上使用套接字进行身份验证服务。

我的问题是:在服务器端和客户端实现或创建 wss 连接的方式是什么?

我的代码:

// Server
var express = require("express");
var socket = require("socket.io"); 

var app = express();

var port = 5310;
var server = app.listen(port, function () {
    console.log("Listening to requests on port", port);
});

var io = socket(server);

io.on("connection", function (socket) {
    // Code
});
// Client
var io = require("socket.io-client");
var socket = io.connect("http://localhost:5310");

// Code

【问题讨论】:

    标签: javascript node.js sockets socket.io


    【解决方案1】:

    在您的节点应用程序的根级别,创建一个socket.js 文件。

    let io;
    
    module.exports = {
        init: httpServer => {
            io = require('socket.io')(httpServer);
            return io;
        },
        getIO: () => {
            if(!io) throw new Error('Socket.io not initialized');
            return io;
        }
    };
    

    这将创建一种单例设计模式,这意味着您的套接字实例永远不会超过一个。

    现在,在 App.js 文件中,您将拥有这个

    const server = app.listen(8080);
            const io = require('./socket').init(server);
            io.on('connection', socket => {
                console.log("Connected!");
            })
    

    现在,在您的控制器中(假设您使用 MVC 模式),导入您的 socket.js 文件并发出您的操作。假设您要发送消息。

    io.getIO().emit('messages', {
                action: 'send',
                message: //message data
            });
    

    这应该是关于您的后端的所有内容。在客户端,导入您的 socket-client const openSocket = require('socket.io-client');,然后监听您的操作:

    const socket = openSocket(yourServer);
            socket.on('messages', data => {
                if(data.action === 'send') {
                    // do your logic
                    // you have acces to data.message, containing your message data you passed on the server
                }
            })
    

    希望对您有所帮助!

    【讨论】:

    • 这是如何实现WSS: 连接的?
    猜你喜欢
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 2022-12-15
    • 1970-01-01
    相关资源
    最近更新 更多