我有以下nodejs web套接字服务器
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(8000);
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
console.log("Listening on 8000");
尝试使用WSCAT
连接时
wscat -c ws://localhost:8000/
我得到以下错误
error: Error: socket hang up
它在使用以下javascript的浏览器中工作得很好
var socket = io.connect('http://localhost:8000');
socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'data' });
});
感谢帮助!
我建议您在指定传输协议的同时尝试连接到endpoint。像这样:
wscat -c ws://localhost:3000/socket.io/\?transport=websocket
这对我的案子有效。
所有运行在localhost上,node到web页面的端口为8001,node.js到可执行文件的端口为8002。请原谅代码,因为我已经试着让这个工作了几天,现在有点难看。 要执行的cmd可执行文件及其参数来自工作的网页。我可以启动EXE。EXE希望每个发送的消息都有一个ACK,这就是为什么您会看到代码将其发回。 我在网页上设置和更新元素时有一个间隔。我还有一个设置消息(msg)的元素。
我试图用和构建一个简单的应用程序。 Ive用express Generator生成我的应用程序的skel: 然后我编辑了package.json文件以包含socket.io: 在运行时,so socket.io正在初始化,但似乎没有io.sockets模块。 我运行查看该对象,我得到: 那么sockets方法在哪里呢?无处可去。但是你看,有一个套接字功能: 以防万一,我将发布我的,但我的代码似乎没
我有一个Apache-Server在端口80上运行我的PHP应用程序。PHP应用程序通过端口3000与NodeJS-Server(socket.io)通信。
我想知道socket.io身份验证的最佳实践是什么。 Alice发出事件'message',参数包括Bobs、唯一标识符等。Bob在监听Socket.on('message')事件时接收消息。
问题内容: 我想为我的项目构建一个实时聊天系统,但实际上我在使用Redis时遇到了一些问题,因为我希望尽可能地更好地存储数据。 我的问题: 我想使用Socket Io在一个封闭的小组(两个人)中进行实时聊天,但是如何存储消息呢? Redis是一个键值存储,这意味着如果我要存储某些内容,则需要在存储之前向数据添加唯一键。 如果同一用户发布多个消息,那么我将在redis中使用哪些键?我正在考虑将唯一I
然后,可以通过domain.com/socket/访问socket.io(获得消息Welcome to socket.io)。另外,静态内容也被交付,但是我无法找到通过端口80加载“socket.io/socket.io.js”文件的任何方法。 在干净的方式上这可能吗?