gpt4 book ai didi

javascript - 我们可以在 Node JS 应用程序中使用带有 ejs(嵌入式 javascript)的 socket.io 而不是 html 页面吗?

转载 作者:搜寻专家 更新时间:2023-10-31 23:59:16 25 4
gpt4 key购买 nike

在客户端浏览器中作为 ejs 页面:

<script src="https://cdn.socket.io/socket.io-1.2.0.js">
</script>
<script>
var socket = io()
socket.on('message', function (msg) {
console.log(msg)
})
</script>

在 Node Js 的服务器端:

var http = require('http').Server(app);
var io = require('socket.io')(http)
io.on('connection', function(socket){
console.log('a user connected')
socket.on('disconnect', function(){
console.log('user disconnected')
})
io.emit('message', json);
})

我没有在 Node Js 控制台中获得“用户连接”日志。因为 var socket = io() 不工作 或者我不知道是什么问题。我可以在 .ejs 中使用 socket.io 页面吗?我需要 ejs,我的应用程序中还需要 socket.io。任何帮助,将不胜感激。

最佳答案

这是对我来说效果很好的解决方案。

服务器端

var express     = require('express');
var app = require('express')();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var ejs = require('ejs');


app.set('view engine', 'ejs');
app.get('/', function(req, res) {
res.render('index');
});

io.on('connection', function(socket) {
console.log('a user connected');
socket.on('chat message', function(msg){
console.log('message: ' + msg);
});
});

server.listen(process.env.PORT || 3000, function(){
console.log('app running');
});

这是 index.ejs 代码

客户端

        <form action="">
<input id="m" autocomplete="off" /><button>Send</button>
</form>
<script src="/socket.io/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script>
$(function () {
var socket = io();
$('form').submit(function(){
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
});
</script>

关于javascript - 我们可以在 Node JS 应用程序中使用带有 ejs(嵌入式 javascript)的 socket.io 而不是 html 页面吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42156057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com