顺利完成了自定任务,十分愉快

2015-09-11 16:35:24 +08:00
 machinemxy

因为公司的小妹研究了几周即时通讯技术无果。前天的会议上,我随口说“即时通讯有什么困难的,我一天估计就能研究出来。”然后就被小妹抓住了这句话,跟领导说:“即时通讯就交给小马了,我改去研究 iOS 了吧!”,并把我的 mac mini 夺走了。

但是昨天上 github 一搜,虽然能搜出许多解决方案,但是原理似乎都比较复杂,并不能让人短时间掌握并定制化业务。幸好昨天下午被安排做了别的事,于是忽悠过去了。今天我想,干脆自己用 jQuery 的 ajax 技术试试看吧。虽然肯定实现方法不会是最理想的,但是尽快做出雏形日后再完善好了。

我对前端的 jQuery 也不怎么了解,曾经买过一本电子书叫《 jQuery 开发权威指南》,但是代码在 Kindle 上的显示效果极差,也就改看小说没有学下去了。在深思熟虑后,我把所需要掌握的技术分为下面四个步骤,循序渐进地攻破它们:
1.实现按一个按钮在<div>中插入一个<p>
2.写一个显示时间的 php 文件,并每隔一秒读取这个 php 文件生成一个带有当前时间的<p>插入<div>
3.每隔一定时间读取数据库中未读信息放入<p>并插入<div>,再设信息为已读
4.做一个文本框和一个回复按钮,利用 ajax 技术插入数据库

刚刚做完后,扔新浪云,用手机和电脑浏览器各打开一个浏览器,果然能够互相发送信息了。感觉即使是自己设定的目标,一步步完成后,也是很有成就感的呢。

4556 次点击
所在节点    jQuery
37 条回复
aegisho
2015-09-11 16:42:42 +08:00
可以用长连接代替轮询
scyuns
2015-09-11 16:42:57 +08:00
方向错了 你那个只能在小并发的时候玩玩

ajax + 定时器 取数据 属于入门级的

正确的是 web-socket 即时通讯
sun2920989
2015-09-11 16:44:59 +08:00
html5 貌似有了 WebSocket
feiyuanqiu
2015-09-11 16:45:46 +08:00
我还以为是做 RTC ,还想进来学习一下呢...
500miles
2015-09-11 16:46:23 +08:00
做回义工, 梳理一下过程吧....

"即时通讯有什么困难的, 我一天估计就能研究出来"

一天过去了..

1, 写下 一个 div, 一个 button;
2, 每间隔 1 秒请求一次服务器, 目的 : 为了取得当前时间(非严格同步业务场景下)..你们自己想想吧
3, ajax polling 拉取消息


太他妈开心了, 今晚三碗饭
machinemxy
2015-09-11 16:46:32 +08:00
@scyuns
@sun2920989
所言极是。所以这是我今后的研究方向了~
frienmo
2015-09-11 16:48:46 +08:00
难道就我在等“我就是那个研究了几周即时通讯技术无果的小妹”?
Menng
2015-09-11 16:51:13 +08:00
Swoole 不错
learnshare
2015-09-11 16:52:05 +08:00
WebSocket 一下子就能把你乐歪了
500miles
2015-09-11 16:52:36 +08:00
我就是那个研究了几周即时通讯技术无果的小妹 ,


@frienmo 你等我干啥咧 (手动抠鼻..)
Niphor
2015-09-11 16:59:29 +08:00
又开撕了吗? 开启周末模式,瓜子果盘准备...

@500miles
shiny
2015-09-11 17:00:51 +08:00
sun2920989
2015-09-11 17:01:47 +08:00
@machinemxy 然而我也只知道名 并不会用 不过这个确实可以解决你这个问题
gamexg
2015-09-11 17:31:35 +08:00
cloudzhou
2015-09-11 17:49:12 +08:00
你可以测试一个简单的 websocket 例子,及时推送温度:
1 打开 http://iot.espressif.cn/static/html/temperature-via-websocket.html
2 open a Terminal:
> curl -H 'Authorization: token 76232af1777d6dc5f6da6fe7d75794ebf87ccd3e' -d '{"datapoint": {"x": 17}}' http://iot.espressif.cn/v1/datastreams/tem_hum/datapoint

see what happened

代码也只有几行
zqhong
2015-09-11 17:51:50 +08:00
用 WebSocket 搞过类似的,比轮询方便多了。
ChiangDi
2015-09-11 17:57:59 +08:00
你这个不叫即时通讯吧...
kifile
2015-09-11 18:06:36 +08:00
WEB-SOCKET 方便很多的,轮询始终有问题的
odirus
2015-09-11 18:11:54 +08:00
哎,千万级别的肿么破,要是一天做完,估计我也丢饭碗了。
iugo
2015-09-11 18:14:34 +08:00
@cloudzhou ws://iot.espressif.cn:9000/ 代码开源吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/219982

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX