javascript - Socket.io 与 url 的基本网络套接字连接?
问题描述
我的客户端正在向此 URL 发出 WebSocket 请求:ws://localhost:3000/feed/XBTMUR
在我的服务器中,我有运行 Express 的 NodeJ。我想使用 Socket.io 来监听连接到这个 URL 的客户端并定期发送 feed 数据。我试过这个,但它不工作:
var app = require('../app');
var http = require('http');
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces.
*/
var io = require('socket.io')(server);
var feed =
io.of('/feed/XBTMUR').on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
io.on('connection', function(socket) {
console.log('a user connected, id ' + socket.id);
socket.on('disconnect', function() {
console.log('a user disconnected, id ' + socket.id);
})
})
setInterval(()=>{
io.sockets.emit('this', { receivers: 'everyone'});
},1000)
server.listen(port);
客户端没有使用 Socket io。
解决方案
我在阅读文档时觉得实现是错误的。
var feed = io.of('/feed') // `/feed` is the namespace
.on('connection', function (socket) {
socket.to('XBTMUR', { hello: 'world' }); // `XBTMUR` is the room / socket id
});
希望这可以帮助。
推荐阅读
- angular - Angular router-outlet 是附加而不是替换整个组件
- python - Python logging.SMTP 处理程序不工作
- html - ReactJS App,无法从 CSV 文件中获取数据
- php - React Native - 将录音保存到远程数据库
- r - 沉默 vroom::vroom?
- excel - 如何在用户表单的 Web 浏览器控件中重命名当前显示的文档?
- laravel - Laravel 限制急切加载项目的错误结果
- apache - Nginx问题:Nginx加逗号,重复url
- .net - Azure Active Directory API 始终显示禁止消息
- php - 将参数从一个 PHP 传递到另一个,在 Localhost 上,不使用 HTTP 请求、包含或会话