求一个解决方案,程序中需要加入实时交互功能,就如实时聊天那样,
发布于 7 年前 作者 HeroBoyluck 3834 次浏览 来自 问答

使用的express,搭建的web程序,总的服务监听端口 :app.listen(4400), 整体的代码结构就是,model,view,routes ,这样, 现在要加一个功能,进行用户间的实时交互,起这样的服务就需要socket.io 然后,就这样:var http = require(‘http’).Server(app); var io = require(‘socket.io’)(http); http.listen(**); 某个端口, 执行的时候,两个端口同时开始监听,我想的是,当点击那个功能时,在起那个服务, 而且功能操作也混乱了。

还有就是能不能监听一个端口,4400,但是,app.listen() 和http.listen() 有冲突么。。

求解答!!!新手,望赐教!

11 回复

用egg-socket.io吧

@ngot 没听过这个,有具体的案例看吗,提供一下,谢谢!

不要把业务系统和IM系统混在一起,IM系统提供接口和sdk给业务系统调用即可,做好鉴权就行了,node的话推荐pomelo

来自酷炫的 CNodeMD

找个多人聊天室代码,瞅瞅就好了

@zhangmingfeng 一脸懵,虽然明白你的意思,完全没有这方面经验

@DevinXian 不是聊天室的问题,我要将他整合到整体的一个项目中,总的也有一个监听的端口,实时交互也需要监听端口,分开都可以实现,和一块就问题

@zy445566 有待细究,看了半天socket.io 知道,socket.io-client 不需要监听端口么,能给个socket.io-client 实例看看么,谢谢!

@HeroBoyluck 2年前,貌似用express弄过个小型的聊天功能,直接监听服务器端的同一端口也没问题… socket.io-client 又不是服务器端,何谈监听端口,连接到服务器端 socket.io 就可以

@DevinXian 总的是: var express = require(‘express’); var app = express(); routes(app); app.listen(4400); 现在要访问localhost:4400/chat 路由处理后,访问的是chat.ejs 页面,进行实时交互,每个登录用户到这个页面可以发信息, 都可以看到,那么路由处理/chat 的时候,就要开始监听一个端口,接受数据和分发数据,大概就这么一个逻辑,初次遇到 你说两个监听一个端口,我试了没成功,单独创了也没成功,页面没反应,不知哪有问题,还在调试,有什么意见建议,

端口监听有啊,看你是用什么框架了啊 我就是用的就是koa,我是我自己封装的koa框架,我是这样用的 1.png 2.png https://github.com/zy445566/myKoa 它是和你的框架共用一个端口的

回到顶部