socket.io 客户端无法连接和接收服务器发出的消息
socket.io client not able to connect and receive messages emit by server
我正在从端口 8001 上的 socket.io 服务器 运行 发出消息
但是我的 socket.io 客户端无法连接和接收这些消息
我的index.html(客户):
<script src="https://cdn.socket.io/socket.io-4.0.0.js"></script>
<script>
//var socket = io();
//var socket = io.connect('http://localhost:8001');
var socket = io('http://localhost:8001', { transports : ['websocket'] });
socket.on('connect', function(){
console.log("connected");
socket.on("message", data => {
console.log(data);
});
});
</script>
我的 nodejs 服务器代码:
const app = require("express")();
const server = require("http").createServer(app);
const io = require("socket.io")(server, {
cors: {
origin: '*',
}
});
io.on("connection", () => {
console.log("Connected!");
});
var redis = require('redis');
//var url = "redis://:@localhost:6379";
//var redis = require('redis-url').connect();
//var client = redis.createClient(url);
var client = redis.createClient();
//var client = redis.createClient();
client.on("error", function(error) {
console.error(error);
});
client.subscribe('notification');
client.on('message', function(channel, msg) {
console.log("Message received: "+msg);
io.sockets.emit(msg);
});
console.log('starting server on 8001...');
server.listen(8001);
我的节点 js 服务器控制台日志:
starting server on 8001...
Message received: from laravel
io.sockets.send(msg);
这对我有用。还要确保您在客户端和服务器
上使用相同版本的 socket.io
我正在从端口 8001 上的 socket.io 服务器 运行 发出消息 但是我的 socket.io 客户端无法连接和接收这些消息
我的index.html(客户):
<script src="https://cdn.socket.io/socket.io-4.0.0.js"></script>
<script>
//var socket = io();
//var socket = io.connect('http://localhost:8001');
var socket = io('http://localhost:8001', { transports : ['websocket'] });
socket.on('connect', function(){
console.log("connected");
socket.on("message", data => {
console.log(data);
});
});
</script>
我的 nodejs 服务器代码:
const app = require("express")();
const server = require("http").createServer(app);
const io = require("socket.io")(server, {
cors: {
origin: '*',
}
});
io.on("connection", () => {
console.log("Connected!");
});
var redis = require('redis');
//var url = "redis://:@localhost:6379";
//var redis = require('redis-url').connect();
//var client = redis.createClient(url);
var client = redis.createClient();
//var client = redis.createClient();
client.on("error", function(error) {
console.error(error);
});
client.subscribe('notification');
client.on('message', function(channel, msg) {
console.log("Message received: "+msg);
io.sockets.emit(msg);
});
console.log('starting server on 8001...');
server.listen(8001);
我的节点 js 服务器控制台日志:
starting server on 8001...
Message received: from laravel
io.sockets.send(msg);
这对我有用。还要确保您在客户端和服务器
上使用相同版本的 socket.io