Search…
1-5 发送事件(Emiting events)
使用socket.io推送二进制的文件,比如音频、视频等,emmm,突然想到我那个项目。https://github.com/veaba/express-nuxt,里面涉及到一个live 的page,可以翻译LOL 的视频直播字幕的转换,期待。。

发送事件

socket.io背后的主要思想是:你可以使用你想要的任何数据发送和接受你想要的任何事件,比如可以编码为json的对象,甚至也支持二进制数据。
让我们这样做,以便当用户键入消息时,服务器将其作为聊天消息事件获取。 index.html中的scripts部分现在应该如下所示:
1
<script src="/socket.io/socket.io.js"></script>
2
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
3
<script>
4
$(function () {
5
var socket = io();
6
$('form').submit(function(e){
7
e.preventDefault(); // prevents page reloading 放置页面重新加载
8
socket.emit('chat message', $('#m').val());
9
$('#m').val('');
10
return false;
11
});
12
});
13
</script>
Copied!
然后, 在index.js中,我们打印出来chat message 事件:
1
io.on('connection',(socket)=>{
2
socket.on('chat message',(msg)=>{
3
console.log('message:'+msg)
4
})
5
})
Copied!
提醒,关于以上代码的路径,是实际开发中,存在偏差,主要是jquery的路径,如果是本地文件,则需要做一层设置,以下为笔者的设置:
index.js中,增加一个static目录,存放jquery的本地文件
1
app.use(express.static('test/static'))
Copied!
index.html
1
<script src="/socket.io/socket.io.js"></script><!--这个部分,在node端,会添加一层中间默认路由给它自己-->
2
<script src="jquery-1.11.1.js"></script>
Copied!
结果将会像这个视频展示的一样:https://i.cloudup.com/transcoded/zboNrGSsai.mp4
Last modified 2yr ago
Copy link
Contents
发送事件