[英]socket.io-client object is not a function
我之前在這里打開了一個問題( 兩個node.js應用程序之間的Socket.io觸發事件? ),這有很多幫助,但我很困惑。
我一直在獲取對象不是我的客戶端腳本上的函數。
一點設置,我有一個前端站點,提供快速localhost:9200
然后我有一個后端應用localhost:3100
也提供快遞,我試圖從localhost:9200
發出事件localhost:9200
到socket.io server localhost:3100
網站localhost的客戶端腳本:9200
// I have tried many different ways
var socket = io('http://localhost:3100');
var socket = io('http://localhost');
var socket = io();
編輯
問題出在上面當然,因為在上面的情況下由於某種原因io
是一個對象,當它應該是一個函數時,我遇到了一個老帖子,提到使用var socket = io.connect('http://localhost:3100');
connect
和工作,我雖然它被折舊或其他什么,我不知道為什么文檔沒有提到這個,但它解決了我的問題。
對象的所有結果都不是函數。 我像這樣包含客戶端腳本
// tried some different ways
<script src="http://localhost:3100/socket.io/socket.io.js"></script>
<script src="socket.io/socket.io.js"></script> // this is a 404
我已經在服務器上安裝了https://github.com/automattic/socket.io-client並在前端網站:9200我已經設置好了。
// tried a couple ways to connect
var socket = require('socket.io-client')('http://localhost:3100');
var socket = require('socket.io-client')('http://localhost');
socket.on('connect', function(){});
socket.on('event', function(data){});
socket.on('disconnect', function(){});
我很困惑如何正確配置這個,以便我可以讓我的網站向我的服務器發出套接字事件,反之亦然?
好吧,我想通了,這很荒謬,但在客戶端javascript我需要添加var socket = io.connect('http://localhost:3100');
io.connect
使它工作與var socket = io('http://localhost:3100');
也許我錯過了,但文檔並沒有說使用io.connect
https://github.com/automattic/socket.io-client無論它是什么工作,我很高興,任何關於為什么文檔沒有提到這個的想法會很好。
區別在於io.connect是1.0之前的語法。 他們出於任何原因改變了它。 這些是我在socket.io中期待的一些有趣的驚喜。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.