node.js 搭建服务问题

发布于 2022-09-11 19:57:33 字数 442 浏览 21 评论 0

const Koa = require('koa')
const http = require('http')
const WebSocket = require('ws')

const app = new Koa()
const server = http.createServer(app.callback())
 
const wss = new WebSocket.Server({ server })

server.listen(3000)

麻烦解释一下这种做法,会跑起来几个服务?如果是两个,那web服务socket服务共用3000端口了吗?

我想在微信小程序上用WebSocket,但据我所知,小程序后台的自动化脚本会杀死除了80端口以外其他进程

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

遗失的美好 2022-09-18 19:57:33

wsws是没有跨域的 你这个问题点开network调试面板。看请求信息里面的upgrade有没有,然后响应状态码是不是101。如果是只有101和upgrade那就是ws,如果又有200又有101 那就是都有 如果只有200的状态码就是没有ws,正常我用都是两个端口,一个ws,一个http协议的端口

铃予 2022-09-18 19:57:33

1、可以测试一下,分别用http访问和用ws访问。

2、小程序不管是 https还是 wss,都是443端口,这里有两个方案

方案一

单域名,做一层代理,监听80和443端口,80强制转443,根据 uri 进行代理转发到不同端口,例如 /api/,是web转发80,/ws/,是socket转发5000,

方案二

弄两个域名,一个域名web,一个域名ws,都是监听443端口

能怎样 2022-09-18 19:57:33

ws库的文档提供了一个监听http协议升级的方案(https://www.npmjs.com/package...),我试了一下是可行的,你可以试一下。至于koa服务放哪儿我就不清楚了~~~

var PORT = 3000;
var http = require('http');
const WebSocket = require('ws');
var url=require('url');
var path=require('path');

const wss = new WebSocket.Server({ noServer: true });

wss.on('connection', function connection(ws) {
    ws.on('message', function incoming(message) {
        console.log('received: %s', message);
    });
    ws.send('This is web socket...');
});

var server = http.createServer(function (request, response) {
    var pathname = url.parse(request.url).pathname;
    console.log(pathname)
    if(pathname==='/'){
        response.writeHead(200, {'Content-Type': 'text/plain'})
        response.end('123', 'utf-8')
    }
});

server.on('upgrade', function upgrade(request, socket, head) {
    wss.handleUpgrade(request, socket, head, function done(ws) {
        wss.emit('connection', ws, request);
    });
});

server.listen(PORT);
console.log("Server runing at port: " + PORT + ".");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文